【发布时间】:2013-04-11 17:27:44
【问题描述】:
是否有某种编程方式可以强制 rspec 测试在第一次失败时停止?
例如,
- 我有一个包含几个 rspec 测试的测试套件,我同时运行它们。
- 每个 rspec 测试都位于单独的 spec.rb 文件中
如果这些测试中的任何一个发生故障,我想在失败的特定测试步骤上进一步停止执行该特定测试,但不停止执行我正在运行的整个测试套件。
我知道有以下方法:
RSpec.configure do |c|
c.fail_fast = true
end
但是在我在测试套件中运行的任何规范文件中定义它会导致套件的所有执行失败。
有什么办法可以处理这种情况?
提前致谢
【问题讨论】:
-
准确理解你想要什么有点困难,但你的意思是如果发生故障,是否可以停止在特定文件中运行的所有测试,同时仍然继续运行套件中的其他测试?如果是这样,我不确定这是否可能。如果您的意思是可以运行整个测试套件但立即显示任何失败消息,以便您可以在其他测试仍在继续运行的同时对其进行调查,然后尝试Fuubar gem。
-
所以我的想法如下: 1. 我的测试套件中有 5 个规范测试 2. 每个测试都在单独的规范文件中 3. 每个测试都包含几个上下文,在这些上下文中完成了一些验证. 4. 我运行命令 rspec 。运行完整的测试套件 5. 当一个测试(一个文件)内的一个上下文中出现问题时,我想停止在该特定上下文上的执行,而不是在该测试中更进一步,而是执行其他规范文件。有没有可能做到这一点?