Skip to content

Support JUnit 3 TestSuite #89

@eed3si9n

Description

@eed3si9n

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.

steps

// 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
  }
}

problem

It still produces:

[error] java.lang.RuntimeException: Test class MathTest is not enclosed by MathSuite

notes

The JUnit 3 TestSuite is still not fixed by #87 (I did a publishLocal).

Originally posted by @vasilmkd in #87 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions