我有一个在 REE 上运行的 rails 2.3 应用程序。我正在使用 capybara 1.1.2、cucumber 1.1.0、poltergeist(同时使用 0.6.0 和来自 github 的最新版本)和 phantomJS 1.5.0。我的问题是我相信我在 phantomJS 中有一个竞争条件导致我的黄瓜测试随机失败。当我在 Chrome 中运行黄瓜测试时,它们可以完美运行,所以我很确定问题出在 poltergeist 或 phantomJS 中。当我在 PhantomJS 中运行黄瓜测试(以便我可以在 CI 服务器上运行它们)时,我会随机收到如下错误:
页面上的 Javascript 代码中出现了一个或多个错误:
TypeError: 'undefined' is not a function
http://static.ak.fbcdn.net/rsrc.php/v2/yd/r/c9z-2BUoufJ.js:75
http://static.ak.fbcdn.net/rsrc.php/v2/yd/r/c9z-2BUoufJ.js:75
http://static.ak.fbcdn.net/rsrc.php/v2/yd/r/c9z-2BUoufJ.js:9 in bound:(?) (Capybara::Poltergeist::JavascriptError)
./features/step_definitions/site_steps.rb:8:in `/I am on the home page/'
features/account_creation.feature:89:in `Given I am on the home page'
Failing Scenarios:
cucumber features/account_creation.feature:5 # Scenario: I should be able to start creating a resume without signing up
cucumber features/account_creation.feature:79 # 场景:我应该能够使用旧用户名和密码登录 cucumber features/account_creation.feature:88 # 场景:我应该能够记住我的登录信息,以便在关闭浏览器时我自动登录
基于poltergeist 的 Github 页面,我已将其添加到我env.rb
的解决方案中,以解决机架 1.3 版本之前的竞争条件问题:
Capybara.server do |app, port|
require 'rack/handler/thin'
Thin::Logging.silent = true
Thin::Server.new('0.0.0.0', port, app).start
end
但这并没有什么区别,我可以说。任何想法都会受到赞赏,即使它只是暗示这是一个 poltergeist 问题或 phantomJS 问题,所以我知道接下来我应该如何询问它。