aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/test_unit
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-01-24 11:41:33 +0100
committerYves Senn <yves.senn@gmail.com>2015-03-18 09:52:17 +0100
commitff79441d49a52a2669e147cd8264a2dc6e452b80 (patch)
tree0f5d5a0f370d1aaaee023dbae4ff618a736d8b94 /railties/test/test_unit
parentccee7eea8e5a8a34256467dd1096ac549dd17362 (diff)
downloadrails-ff79441d49a52a2669e147cd8264a2dc6e452b80.tar.gz
rails-ff79441d49a52a2669e147cd8264a2dc6e452b80.tar.bz2
rails-ff79441d49a52a2669e147cd8264a2dc6e452b80.zip
add tests for our minitest reporter.
Diffstat (limited to 'railties/test/test_unit')
-rw-r--r--railties/test/test_unit/reporter_test.rb76
1 files changed, 76 insertions, 0 deletions
diff --git a/railties/test/test_unit/reporter_test.rb b/railties/test/test_unit/reporter_test.rb
new file mode 100644
index 0000000000..587a0f878b
--- /dev/null
+++ b/railties/test/test_unit/reporter_test.rb
@@ -0,0 +1,76 @@
+require 'abstract_unit'
+require 'rails/test_unit/reporter'
+
+class TestUnitReporterTest < ActiveSupport::TestCase
+ class ExampleTest < Minitest::Test
+ def woot; end
+ end
+
+ setup do
+ @output = StringIO.new
+ @reporter = Rails::TestUnitReporter.new @output
+ end
+
+ test "prints rerun snippet to run a single failed test" do
+ @reporter.results << failed_test
+ @reporter.report
+
+ assert_match %r{^bin/rails test .*test/test_unit/reporter_test.rb:6$}, @output.string
+ assert_rerun_snippet_count 1
+ end
+
+ test "prints rerun snippet for every failed test" do
+ @reporter.results << failed_test
+ @reporter.results << failed_test
+ @reporter.results << failed_test
+ @reporter.report
+
+ assert_rerun_snippet_count 3
+ end
+
+ test "does not print snippet for successful and skipped tests" do
+ skip "confirm the expected behavior with Arthur"
+ @reporter.results << passing_test
+ @reporter.results << skipped_test
+ @reporter.report
+ assert_rerun_snippet_count 0
+ end
+
+ test "prints rerun snippet for skipped tests if run in verbose mode" do
+ skip "confirm the expected behavior with Arthur"
+ verbose = Rails::TestUnitReporter.new @output, verbose: true
+ verbose.results << skipped_test
+ verbose.report
+
+ assert_rerun_snippet_count 1
+ end
+
+ private
+ def assert_rerun_snippet_count(snippet_count)
+ assert_equal snippet_count, @output.string.scan(%r{^bin/rails test }).size
+ end
+
+ def failed_test
+ ft = ExampleTest.new(:woot)
+ ft.failures << begin
+ raise Minitest::Assertion, "boo"
+ rescue Minitest::Assertion => e
+ e
+ end
+ ft
+ end
+
+ def passing_test
+ ExampleTest.new(:woot)
+ end
+
+ def skipped_test
+ st = ExampleTest.new(:woot)
+ st.failures << begin
+ raise Minitest::Skip
+ rescue Minitest::Assertion => e
+ e
+ end
+ st
+ end
+end