Closed eed3si9n closed 2 months ago
I understand if the original intention of the fix for @Suite
was to only fix JUnit 4 suites. I only wish to provide some feedback about other cases.
The JUnit 3 TestSuite
is still not fixed by this PR (I did a publishLocal
). It still produces:
[error] java.lang.RuntimeException: Test class MathTest is not enclosed by MathSuite
for the following test sources.
// src/test/MathTest.scala
// This is a definition of a JUnit 3 test case. Many of these test cases will be "dynamically" collected into a JUnit 3 `TestSuite` and run.
class MathTest(op1: Int, op2: Int, res: Int) extends TestCase(s"$op1 + $op2 = $res") {
final override def runTest(): Unit = {
assertEquals(res, op1 + op2)
}
}
// src/test/MathSuite.scala
class MathSuite extends TestCase
object MathSuite {
// This is essentially a Scala 2.12+ hack, where methods on the companion object produce static forwarders on the class.
// This is the Scala equivalent of the JUnit 3 convention public static Test suite() { ... }
def suite(): Test = {
val s = new TestSuite("MathSuite")
s.addTest(new MathTest(1, 2, 3))
s.addTest(new MathTest(2, 3, 4))
s
}
}
@vasilmkd I've split the above comment into a new issue - https://github.com/sbt/sbt-jupiter-interface/issues/89
Fixes https://github.com/sbt/sbt-jupiter-interface/issues/54
This cherry picks the Suite support from @Nezisi's https://github.com/Nezisi/sbt-jupiter-interface/compare/bump-sbt-1_8...Nezisi:sbt-jupiter-interface:fix-junit5-suite-support branch.