Ruby on rails 运行cucumber而不启动远程网站测试的起始轨道

Ruby on rails 运行cucumber而不启动远程网站测试的起始轨道,ruby-on-rails,ruby,docker,cucumber,automated-tests,Ruby On Rails,Ruby,Docker,Cucumber,Automated Tests,背景: 我有一个安装了cucumber的rails应用程序。我想使用cucumber测试来测试部署在单独系统上的应用程序 问题: 因此,基本上我有部署的应用程序和cucumber测试的URL,因此当我以应用程序链接作为参数启动cucumber时-我要求cucumber启动测试,而不调用它所在的rails应用程序,但测试外部链接。 为什么需要: Cucumber总是试图调用postgres数据库,这给我带来了问题,因为我正在尝试将其停靠,我不想将postgres包含在其中(由于某些原因,这超出了本

背景: 我有一个安装了cucumber的rails应用程序。我想使用cucumber测试来测试部署在单独系统上的应用程序

问题: 因此,基本上我有部署的应用程序和cucumber测试的URL,因此当我以应用程序链接作为参数启动cucumber时-我要求cucumber启动测试,而不调用它所在的rails应用程序,但测试外部链接。

为什么需要: Cucumber总是试图调用postgres数据库,这给我带来了问题,因为我正在尝试将其停靠,我不想将postgres包含在其中(由于某些原因,这超出了本文的范围)


那么,有可能实现这一点吗?(运行cucumber而不调用其他东西,如app/call to db)

这可以通过在rails应用程序中定义作为代理(路由到您想要的端点)的rack应用程序来实现。 例如:

 class TestAppRoutes < Sinatra::Application
    uri = URI.parse("http://10.0.0.0")

    get '/*' do
      request_url = "#{uri}/#{params['splat'][0]}"
      response = Net::HTTP.get(URI.parse(request_url))

      response
    end

  end
类测试路径
然后在features/support中定义一个ruby文件来实例化rack应用程序: if ENV['BASE_URL'] Lookout::Rack::Test.app=app::TestAppRoutes 结束

最后,在调用cucumber时:docucumber BASE\uurl=

结帐: