像许多非greenfeild项目一样,我到达了我的新工作,发现大多数测试是使用功能规格而不是控制器/型号规格来执行的。当然,这意味着测试需要很长时间才能执行。
有没有办法我可以设置RSpec以便我的功能测试最后运行 - 并且只有在所有其他测试首次成功时它们才会运行。我正在将应用程序迁移到控制器测试以加速执行,但是如果模型验证存在问题或者我的某个控制器被破坏,则无需等待15分钟即可完成功能测试。
我想做的是什么?
(我现在正在RubyMine中运行测试;但如果需要,我可以转到rake spec
)。
答案 0 :(得分:3)
虽然我自己并没有真正尝试过这个问题,但通过阅读文档,可以按照自己的意愿行事。
将以下内容添加到spec_helper.rb以覆盖全局排序并强制rspec在首次失败时失败。
RSpec.configure do |config|
config.register_ordering :global do |examples|
feature, other = examples.partition do |example|
example.metadata[:type] == :feature
end
other + feature
end
config.fail_fast = true
end