运行黄瓜而不启动启动轨道进行远程网站测试

时间:2016-01-26 19:15:27

标签: ruby-on-rails ruby docker cucumber automated-tests

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

问题: 所以基本上我有部署的应用程序和黄瓜测试的URL,所以当我用app链接作为参数启动黄瓜 - 我需要黄瓜开始测试而不调用它所驻留的rails应用程序但是测试外部链接。

为什么需要: 黄瓜总是试图调用postgres数据库,这对我来说是一个问题,因为我正在尝试对它进行停靠,我不想在其中包含postgres(由于某些原因,这里超出了范围)。

那么,它有可能实现吗? (运行黄瓜而不调用app /调用db等其他东西)

1 个答案:

答案 0 :(得分:1)

这可以通过在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 端

最后当你调用黄瓜时:做黄瓜BASE_URL = http://10.10.10

结帐:https://github.com/lookout/lookout-rack-test