ruby-on-rails - 运行 cucumber 而无需启动远程网站测试的启动 rails

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

背景:
我有安装了 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/

相关文章:

ruby-on-rails - 过滤中的查询字符串或绑定(bind)参数

ruby-on-rails - 表单未通过 Mechanize 提交

ruby - 在 RSpec 中自动共享上下文

ruby - 如何找到范围的 "effective"结尾?

docker - 无法使用没有外部 IP 地址的容器镜像创建 Google Compute Engine 虚拟机

javascript - 在 javascript 函数中获取 ruby​​ 数组的每个 i 元素(转义和取消转义)?

ruby-on-rails - 如何保持命令永久

ruby-on-rails - Elasticsearch 无法以索引开头且别名需要唯一错误

docker - 配置 prometheus 以从 dockerized nodejs pod 收集自定义指标

docker - docker --rm仅当退出代码为零时