Rspec - 使用javascript驱动程序的Capybara功能规范在失败后没有完成

时间:2016-11-08 17:25:35

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

我正在尝试为我的网站创建功能规格,但我已经在门外发现了一个绊脚石。

当我尝试运行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运行它。 如果我有任何其他有用的数据,请告诉我

1 个答案:

答案 0 :(得分:1)

我弄清楚问题是什么。

在我的rails_helper中,有一个config.after(:all)块包裹DatabaseCleaner.clean,当javascript规范完成时冻结了。{/ p>

visit被解雇时,测试本身的失败是控制台中缺少的资产。

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