我的测试套件中有一个拍打测试 - 每100次左右就会失败一次。
然而,这是一种预期的行为,因为它是对运行大量事物并返回结果的算法的测试 - 每次进入时都无法找到结果。如果我再次运行测试套件,一切都是绿色的。
如果失败并使用重新运行的结果,有没有办法重新运行这个特定的测试?
例如,此测试通过的时间占99%。如果失败,它应该自动重新运行而不会触发故障。如果 重新运行测试失败,则应将其报告为正常的失败测试。
我在考虑something like this,它用于在失败时停止测试套件:
class << MiniTest::Unit.runner; self; end.class_eval do
def puke(suite, test, e)
super(suite, test, e)
if ENV['FAIL_FAST'] && !e.kind_of?(MiniTest::Skip)
turn_reporter.io.puts "****** Fail fast active for tests, exiting (environment variable FAIL_FAST exists)"
exit(1)
end
end
end
但不是'快速失败'而是“重新运行”失败的测试。区别在于上面的代码有一个环境变量集 - 所以如果任何测试失败,它就会'呕吐' - 我只想把这个'重新运行'标志放在一个特定的测试上。
有没有人找到办法做到这一点?