如何添加一个不从 TestCase 扩展到 TestSuite 的 JUnit 4 测试?

2022-09-04 19:46:36

在 JUnit 3 中,我简单地调用

suite.addTestSuite( MyTest.class )

但是,如果MyTest是JUnit 4测试,它不会扩展TestCase,则这不起作用。我应该如何创建一套测试?


答案 1

对于具有大量需要与新的 v4 样式共存的 3.8 样式套件/测试的用户,可以执行以下操作:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
  // Add a JUnit 3 suite
  CalculatorSuite.class,
  // JUnit 4 style tests
  TestCalculatorAddition.class,
  TestCalculatorDivision.class
})
public class CalculatorSuite {
    // A traditional JUnit 3 suite
    public static Test suite() {
        TestSuite suite = new TestSuite();
        suite.addTestSuite(TestCalculatorSubtraction.class);
        return suite;
    }
}

答案 2

自己找到了答案:在这里

这样:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
  TestCalculatorAddition.class,
  TestCalculatorSubtraction.class,
  TestCalculatorMultiplication.class,
  TestCalculatorDivision.class
})
public class CalculatorSuite {
    // the class remains completely empty, 
    // being used only as a holder for the above annotations
}

推荐