def open_session(application = nil)
        session = Integration::Session.new(application)
        
        extras = Module.new { attr_accessor :delegate, :test_result }
        if self.class.respond_to?(:fixture_table_names)
          self.class.fixture_table_names.each do |table_name|
            name = table_name.tr(".", "_")
            next unless respond_to?(name)
            extras.__send__(:define_method, name) { |*args|
              delegate.send(name, *args)
            }
          end
        end
        
        extras.__send__(:define_method, :add_assertion) {
          test_result.add_assertion
        }
        session.extend(extras)
        session.delegate = self
        session.test_result = @_result
        yield session if block_given?
        session
      end