1

好的,我在 Rails 2 应用程序的黄瓜场景中遇到了一个奇怪的错误。

我们在 Capybara Webkit 下运行我们的 Cucumber 套件。这在大多数情况下工作正常,但我有一个在 ajax 事务期间失败的测试,因为它看不到应该出现在页面上的元素。

我最初虽然这是一个竞争条件并提高了最大超时时间,但无论我们等待多长时间,都找不到该元素。

所以我想看看它的实际效果,所以我尝试切换到 Selenium,这样我就可以端到端地观看整个测试。

但是,每当我尝试通过 selenium 运行它时,它会在第一个设置步骤中直接失败并出现错误:

Given I am logged in # features/step_definitions/users/authentication_steps.rb:5
  HTTP request path is empty (ArgumentError)
  /home/dvg/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1860:in `initialize'
  /home/dvg/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:2093:in `initialize'
  ./features/support/assumption.rb:48:in `login'
  ./features/step_definitions/users/authentication_steps.rb:7:in `/^I am logged in$/'
  features/requests/user_requests_a_thing.feature:4:in `Given I am logged in'

我已经把我能想到的所有设置都搞砸了,试图让它发挥作用。

我试过了:

  1. 从 Firefox 切换到 ChromeDriver
  2. 定义应用主机
  3. 定义一个 NO_PROXY 环境变量以防代理服务器妨碍(我认为这是 Selenium Webdriver 所关注的)
  4. 重构以使用 path_helpers 而不是访问“/login”样式的步骤
  5. 更新捆绑包

特别注意事项:

  1. 我们是一个刚刚从 Ruby 1.8.7 转换为 1.9.3 的 rails 2.3 应用程序
  2. 我们正在使用最新的 Cucumber/Capybara
4

1 回答 1

1

它是无代理变量,但它需要是

ENV['no_proxy'] = "127.0.0.1"
于 2013-02-07T19:48:26.340 回答