diff --git a/munit/shared/src/main/scala/munit/MUnitRunner.scala b/munit/shared/src/main/scala/munit/MUnitRunner.scala index a438577d..4ce99ec7 100644 --- a/munit/shared/src/main/scala/munit/MUnitRunner.scala +++ b/munit/shared/src/main/scala/munit/MUnitRunner.scala @@ -310,6 +310,9 @@ class MUnitRunner(val cls: Class[_ <: Suite], newInstance: () => Suite) handleNonFatalOrStackOverflow(ex) case ex: StackOverflowError => handleNonFatalOrStackOverflow(ex) + case ex => + notifier.fireTestFailure(new Failure(description, ex)) + Future.successful(()) } val result: Future[Unit] = try runTestBody(notifier, description, test).recoverWith(onError) diff --git a/tests/shared/src/main/scala/munit/SwallowedExceptionSuite.scala b/tests/shared/src/main/scala/munit/SwallowedExceptionSuite.scala index 6bd26b16..988a3901 100644 --- a/tests/shared/src/main/scala/munit/SwallowedExceptionSuite.scala +++ b/tests/shared/src/main/scala/munit/SwallowedExceptionSuite.scala @@ -6,10 +6,15 @@ class SwallowedExceptionSuite extends FunSuite { test("issue-51") { throw new Exception("i am not reported") with NoStackTrace } + + test("issue-650") { + throw new IllegalAccessError("i am reported") + } } object SwallowedExceptionSuite extends FrameworkTest( classOf[SwallowedExceptionSuite], """|==> failure munit.SwallowedExceptionSuite.issue-51 - i am not reported + |==> failure munit.SwallowedExceptionSuite.issue-650 - i am reported |""".stripMargin )