lib/minitest/queue.rb in ci-queue-0.5.1 vs lib/minitest/queue.rb in ci-queue-0.5.2

- old
+ new

@@ -86,13 +86,18 @@ queue.poll do |test_name| class_name, method_name = test_name.split("#".freeze, 2) if klass = runnable_classes[class_name] result = Minitest.run_one_method(klass, method_name) - unless queue.acknowledge(test_name, result.passed? || result.skipped?) + failed = !(result.passed? || result.skipped?) + if failed && queue.requeue(test_name) result.requeue! + reporter.record(result) + elsif queue.acknowledge(test_name) || !failed + # If the test was already acknowledged by another worker (we timed out) + # Then we only record it if it is successful. + reporter.record(result) end - reporter.record(result) else raise SuiteNotFound, "Couldn't find suite matching: #{test_name}" end end end