aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/test_unit
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2015-09-28 20:27:30 +0200
committerKasper Timm Hansen <kaspth@gmail.com>2015-09-29 08:37:33 +0200
commit2310fb9d810f11681c1eecdb88518c23c8b379cf (patch)
tree969834f7a9f74738c4ad208418372b802b754f66 /railties/test/test_unit
parent64a3b09b408400c94fd25f22c2ce791a8d90b5cb (diff)
downloadrails-2310fb9d810f11681c1eecdb88518c23c8b379cf.tar.gz
rails-2310fb9d810f11681c1eecdb88518c23c8b379cf.tar.bz2
rails-2310fb9d810f11681c1eecdb88518c23c8b379cf.zip
Add fail fast to test runner.
Passing `--fail-fast` to the test runner will now abort the test run on the first failure. The run continues on any unexpected errors.
Diffstat (limited to 'railties/test/test_unit')
-rw-r--r--railties/test/test_unit/reporter_test.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/railties/test/test_unit/reporter_test.rb b/railties/test/test_unit/reporter_test.rb
index b1dd8b5284..59fdf4bc36 100644
--- a/railties/test/test_unit/reporter_test.rb
+++ b/railties/test/test_unit/reporter_test.rb
@@ -86,6 +86,30 @@ class TestUnitReporterTest < ActiveSupport::TestCase
assert_no_match 'Failed tests:', @output.string
end
+ test "fail fast interrupts run on failure" do
+ fail_fast = Rails::TestUnitReporter.new @output, fail_fast: true
+ interrupt_raised = false
+
+ # Minitest passes through Interrupt, catch it manually.
+ begin
+ fail_fast.record(failed_test)
+ rescue Interrupt
+ interrupt_raised = true
+ ensure
+ assert interrupt_raised, 'Expected Interrupt to be raised.'
+ end
+ end
+
+ test "fail fast does not interrupt run errors or skips" do
+ fail_fast = Rails::TestUnitReporter.new @output, fail_fast: true
+
+ fail_fast.record(errored_test)
+ assert_no_match 'Failed tests:', @output.string
+
+ fail_fast.record(skipped_test)
+ assert_no_match 'Failed tests:', @output.string
+ end
+
private
def assert_rerun_snippet_count(snippet_count)
assert_equal snippet_count, @output.string.scan(%r{^bin/rails test }).size