Rspec& Capybara测试通过隔离,失败一起运行

时间:2016-10-11 20:57:42

标签: ruby-on-rails ruby rspec

当我单独运行JS功能测试时,它们工作正常。

当我运行测试套件时,它们会失败。

我使用'rspec spec'执行'--bisect'并返回1次产生失败的测试。

规格: https://gist.github.com/lfgdz/c56481ce88cdb80750fa6d98f0ec1a4d

spec_helper: https://gist.github.com/lfgdz/08b1b82d2a36aaf7929af79b04c652c1

1 个答案:

答案 0 :(得分:0)

当specs孤立地传递但在一起运行时失败时,必须存在一些相互依赖或在它们之间泄漏的信息。

正如@ slowjack2k所说,你的spec_helper.rb指定:

config.use_transactional_fixtures = false

根据RSpec Transactions doc,这意味着您已要求RSpec不要在事务中包装每个规范。这意味着在一个规范期间对数据库所做的更改可能会影响其他规范,包括标准单元测试和Capybara功能测试之间。

如果您确实需要关闭事务处理程序,则需要使用database_cleaner或其他一些机制来确保在一个规范中所做的更改不会干扰其他规范。