失败时重新运行一次特定测试

时间:2014-09-17 11:54:11

标签: ruby unit-testing minitest

我的测试套件中有一个拍打测试 - 每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

但不是'快速失败'而是“重新运行”失败的测试。区别在于上面的代码有一个环境变量集 - 所以如果任何测试失败,它就会'呕吐' - 我只想把这个'重新运行'标志放在一个特定的测试上。

有没有人找到办法做到这一点?

0 个答案:

没有答案