我想知道如何在java程序中运行一些JUnit4测试。基本上-根据运行时的一些条件,我需要决定使用哪个测试运行器。使用Junit3我可以覆盖TestCase类中的runTest方法--但是在JUnit4测试中不会扩展TestCase类,所以我没有什么可以覆盖的……有没有什么我需要实现的方法...或者别的什么..。
发布于 2010-04-19 15:20:12
下面是一些示例代码:
public void checkTests() throws org.junit.runners.model.InitializationError {
checkTestClass((Class<?>) MyTestClss.class);
}
private void checkTestClass(Class<?> theClass) throws InitializationError {
final RunNotifier notifier = new RunNotifier();
notifier.addListener(new RunListener() {
@Override
public void testFailure(Failure failure) throws Exception {
Assert.fail(failure.getMessage());
}
});
final Runner runner = new BlockJUnit4ClassRunner(theClass);
runner.run(notifier);
}发布于 2012-04-12 23:37:10
我遇到的问题是,我必须在每个测试用例之前运行一个方法(它不能是静态的
如果此非静态方法与预处理测试用例有关,则可以通过在测试类中使用@Before注释方法来实现此目的。看一下@Before的行为的Junit4文档。
否则,要简单地触发Junit测试类,您可以使用以下代码:
Runner r =
try {
r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) { // FIX if necessary: JDK 7 syntax
// handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));希望这能有所帮助。
https://stackoverflow.com/questions/2665467
复制相似问题