Ash*_*Ash 4 ruby tdd rspec ruby-on-rails rspec-rails
像许多非 Greenfield 项目一样,我到达新工作时发现大多数测试都是使用功能规范而不是控制器/模型规范来执行的。当然,这意味着测试需要很长时间才能执行。
有没有一种方法可以设置 RSpec,以便我的功能测试最后运行 - 并且只有在所有其他测试首先成功时它们才会运行。我正在将应用程序迁移到控制器测试以加快执行速度,但如果模型验证出现问题或我的控制器之一损坏,则无需等待 15 分钟来完成功能测试。
我想做的事情可能吗?
(我现在正在 RubyMine 中运行测试;但rake spec
如果需要的话我可以转移到)。
虽然我自己还没有真正尝试过,但通读文档似乎可以做你想做的事。
将以下内容添加到您的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
Run Code Online (Sandbox Code Playgroud)