【发布时间】:2016-07-15 05:22:30
【问题描述】:
构建一个基本的 Rails 应用程序我正在重构以在外部 docker/compute 作为服务(即 Iron.io)上进行繁重的工作。 “工人”
在重构中创建了 Grape API 以允许远程“工作人员”的处理状态在处理完成时通知服务器。然后用户界面使用 ajax 轮询本地服务器进行更新。 API 和基本测试一切正常。它还可以使用运行工作程序的 Delayed::job 在开发中工作。
然而,我似乎无法让我的 capybara 测试端到端地工作,因为延迟的::job 运行进程使 HTTP 请求返回服务器总是被拒绝连接。
如果我并行运行 Rails 服务器作为测试,它工作正常:(RAILS_ENV="test" rails s -p 3001),然后确保将 ENV 变量设置为端口 3001。
我试过了
- Capybara.configure的各种组合(如下)
- 在测试中:访问 url(其中
url="http://#{Capybara.server_host}:#{Capybara.server_port}")以查看是否“启动”服务器 - 各种网络驱动程序(poltergeist、selenium 等)
非常感谢任何想法、经验或指导
本
注意:在代码中
- 通过填充的 ENV[''] 变量填充域和端口(这些环境变量将在运行环境 iron.io 中设置)
- port & app_host 设置如下
-
测试中填充的 ENV 变量
Capybara.configure do |config| config.run_server = true config.server_port = "9876" config.app_host = "http://127.0.0.1:9876" end导轨 4.1.0 rspec 3.4.0 水豚 2.7.0 闹鬼 1.5.1 硒 2.53.0
【问题讨论】:
标签: ruby-on-rails api selenium rspec