发生的事情的一些背景。所以我没有升级/更改任何关于我的测试框架的 gems/code/versions 等,它包含以下内容(我正在运行 ruby 1.8.7p374):
gem 'capybara', '1.1.4'
gem 'commander', '4.1.3'
gem 'cucumber', '1.2.3'
gem 'poltergeist', '1.0.2'
gem 'parallel', '0.6.2'
gem 'parallel_tests', '0.10.1'
gem 'rspec', '2.13.0'
gem 'sauce', '2.3.2'
gem 'sauce-cucumber', '2.3.1'
gem 'gherkin', '2.11.6'
上周三,我的测试都顺利通过,然后周四早上,当我尝试针对我们的网站运行该套件时,我遇到了很多失败消息:
One or more errors were raised in the Javascript code on the page: SyntaxError: Parse error (Capybara::Poltergeist::JavascriptError)
就我们网站上的变化而言,我们最近更改了我们的登录和注册表格以通过 https,但那是在星期三,我在部署之前已经运行了我的测试。
我在装有 OSx 10.8.5 的 Mac 上运行我的测试
我已经尝试在本地 linux vagrant box 上运行它,但我仍然遇到错误。
但是,如果我在我们的一个 Linux 实例(托管在 AWS 上)上运行测试,它运行良好。
我已经尝试将其诊断至死,但没有发现任何问题。其中最有用的是 Firebug ,它根本不会在我们的网站上发现任何 javascript 错误。
请帮忙,因为这让我发疯。
如果我遗漏了一些重要信息,请询问,我会提供。
最佳答案
所以事实证明是 Affiliate Window 有问题,这让 PhantomJS 崩溃了。我们的解决方案是在我们的测试环境中禁用它,因为它是第 3 方。遗憾的是没有有用的错误消息。
我们是如何发现这个的...
好吧,我在 Poltergeist 中使用了远程调试器,它在检查器控制台中清晰地提取了错误。
要配置这个,请看这个 link
关于javascript - 我的测试现在因 SyntaxError: Parse error (Capybara::Poltergeist::JavascriptError) 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23249188/