diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2015-09-28 20:27:30 +0200 |
---|---|---|
committer | Kasper Timm Hansen <kaspth@gmail.com> | 2015-09-29 08:37:33 +0200 |
commit | 2310fb9d810f11681c1eecdb88518c23c8b379cf (patch) | |
tree | 969834f7a9f74738c4ad208418372b802b754f66 /railties/test/test_unit | |
parent | 64a3b09b408400c94fd25f22c2ce791a8d90b5cb (diff) | |
download | rails-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.rb | 24 |
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 |