diff --git a/lib/minitest.rb b/lib/minitest.rb index 3fc6f5d7..472d1acd 100644 --- a/lib/minitest.rb +++ b/lib/minitest.rb @@ -664,7 +664,8 @@ def start # :nodoc: def prerecord klass, name # :nodoc: self.reporters.each do |reporter| - reporter.prerecord klass, name + # TODO: remove conditional for minitest 6 + reporter.prerecord klass, name if reporter.respond_to? :prerecord end end diff --git a/test/minitest/test_minitest_test.rb b/test/minitest/test_minitest_test.rb index 394e414c..10f2fa8b 100644 --- a/test/minitest/test_minitest_test.rb +++ b/test/minitest/test_minitest_test.rb @@ -1948,6 +1948,30 @@ def assert_run_record *expected, &block assert_equal expected, recorded end + def test_run_with_bogus_reporter + # https://github.com/seattlerb/minitest/issues/659 + # TODO: remove test for minitest 6 + @tu = Class.new FakeNamedTest do + def test_method + assert true + end + end + + self.reporter = Minitest::CompositeReporter.new + reporter << Class.new do + def start; end + # def prerecord klass, name; end + def record result; end + def report; end + def passed?; end + def results; end + end.new + + Minitest::Runnable.runnables.delete @tu + + @tu.run reporter, {} + end + def test_record_passing assert_run_record do def test_method