【发布时间】:2010-09-17 17:03:12
【问题描述】:
在 JUnit 3 中我简单地调用了
suite.addTestSuite( MyTest.class )
但是,如果 MyTest 是不扩展 TestCase 的 JUnit 4 测试,则此方法不起作用。我应该怎么做才能创建一套测试?
【问题讨论】:
在 JUnit 3 中我简单地调用了
suite.addTestSuite( MyTest.class )
但是,如果 MyTest 是不扩展 TestCase 的 JUnit 4 测试,则此方法不起作用。我应该怎么做才能创建一套测试?
【问题讨论】:
对于需要与新的 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;
}
}
【讨论】:
class xy contains itself as a SuiteClass
自己找到了答案:here
像这样:
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
}
【讨论】: