【问题标题】:Rspec - Capybara feature spec using the javascript driver isn't finishing after failureRspec - 使用 javascript 驱动程序的 Capybara 功能规范在失败后未完成
【发布时间】:2016-11-11 00:42:33
【问题描述】:

我正在尝试为我的网站创建功能规范,但我一开始就遇到了一个绊脚石。

当我尝试运行 capybara javascript 功能规范时,它会失败,但不会结束测试或关闭浏览器窗口。

运行这个测试

RSpec.feature "Whatever", type: :feature, js: true do
  scenario "whatever again" do
    visit "/whatever_url"
    expect(true).to eq(true)
  end
end

结果

Whatever
  whatever again (FAILED - 1)

在那里挂了几个小时,没有关于导致失败的原因的消息

我已尝试使用 selenium 和 webkit javascript 驱动程序。 它们大部分时间都在工作,因为当我用更复杂的动作运行它们时,它们会执行它们,只是完成测试部分给我带来了麻烦。

我正在使用 rails 4.2.4、rspec 3.5.1、capybara 2.7.1 和 ubuntu 15.10 运行它。 如果有任何其他有用的数据我应该包括,请告诉我

【问题讨论】:

  • 你给出的例子应该通过而不是失败 - 你得到什么错误?
  • 就是这样,我没有收到任何错误。我已经更新了问题以包含规范的结果(不知道为什么我首先忘记了这一点)
  • ok -- 仅供参考,假设您调用的 RSpec.feature 是 Capybara 提供的,那么您不需要同时指定 type: :feature,因为它已经设置好了。

标签: ruby-on-rails selenium-webdriver rspec capybara capybara-webkit


【解决方案1】:

我发现了问题所在。

在我的 rails_helper 中有一个 config.after(:all) 块包装 DatabaseCleaner.clean 在完成 javascript 规范时冻结。

测试本身的失败是visit 被触发时控制台中出现的缺失资产。

更新:我还遇到了水豚和与设计交互的 js webdrivers 的其他问题,并使用解决方案 here 解决了这个问题,在实施该解决方案后,after(:all) 中的 DatabaseCleaner.clean 不再导致此问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    相关资源
    最近更新 更多