背景:
我有安装了 cucumber 的Rails应用程序。我想使用关联的Cucumber测试来测试在单独系统上部署的应用程序。
问题:
因此,基本上我有了已部署应用程序的URL和Cucumber测试,因此当我使用该应用程序链接作为参数启动Cucumber-时,我要求Cucumber在不调用其所驻留的Rails应用程序的情况下启动测试,但要测试外部链接。
为什么需要:
cucumber 总是尝试调用postgres数据库,这对我造成了问题,因为我正在尝试对其进行 docker 管理,并且我不想在其中包括postgres(由于某些原因超出了本文的范围)。
那么,有可能实现这一目标吗? (运行 cucumber 而不调用其他应用程序/对数据库的调用)
最佳答案
这可以通过在Rails应用程序中定义一个充当代理(路由到所需端点)的机架应用程序来实现。
例:
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
然后在功能部件/支持中定义一个ruby文件以实例化机架应用程序:
如果ENV ['BASE_URL']
Lookout::Rack::Test.app = APP::TestAppRoutes
结束
最后,当您调用 cucumber 时:做BASE_URL = http://10.10.10
结帐:https://github.com/lookout/lookout-rack-test
关于ruby-on-rails - 运行 cucumber 而无需启动远程网站测试的启动 rails ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021983/