Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rspec 水豚测试在一组运行时失败,但在单独运行时成功_Rspec_Capybara - Fatal编程技术网

Rspec 水豚测试在一组运行时失败,但在单独运行时成功

Rspec 水豚测试在一组运行时失败,但在单独运行时成功,rspec,capybara,Rspec,Capybara,当使用bundle exec rspeccapybara在一堆中运行我的所有规范时,它一直告诉我,它无法在页面上的测试数量中找到元素 使用bundle exec rspec spec/features/feature_spec.rb一切正常 我尝试使用capybara屏幕截图gem对其进行调试,但使用该gem,所有规范实际上都运行良好。 所以我很好奇到底发生了什么 UPD 这是我的配置的一部分: config.before(:suite) do DatabaseCleaner.cle

当使用
bundle exec rspec
capybara在一堆中运行我的所有规范时,它一直告诉我,它无法在页面上的测试数量中找到元素

使用
bundle exec rspec spec/features/feature_spec.rb
一切正常

我尝试使用capybara屏幕截图gem对其进行调试,但使用该gem,所有规范实际上都运行良好。

所以我很好奇到底发生了什么

UPD

这是我的配置的一部分:

  config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do
    if Capybara.current_driver == :rack_test # http://bit.ly/YZzrY5
      DatabaseCleaner.strategy = :transaction
    else
      DatabaseCleaner.strategy = :truncation
    end

    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

您可能想看看您是否在使用selenium或capybara webkit?如果是这样的话,您可能需要使用截断策略而不是事务。@RobertH,请看我上面的配置。我刚刚遇到了这个问题,我有一些功能测试的竞争条件,这些测试将重新创建相同的Desive用户。确保您的测试不会互相干扰。除了@tiradc提出的建议之外,rspec中的“-bisect”标志在确定哪些未失败的测试可能是套件/个人成功与失败之间差异的原因时非常重要: