我试图创建一个JUnit运行该集团将利用一起共同测试junit API:如何组JUnit测试一起
package whatever;
import org.junit.runner.Description;
import org.junit.runner.Runner;
import org.junit.runner.notification.Failure;
import org.junit.runner.notification.RunNotifier;
public class SomeTestRunner extends Runner {
public SomeTestRunner(Class<?> testClass) {}
@Override
public Description getDescription() {
return Description.EMPTY;
}
@Override
public void run(RunNotifier notifier) {
for (int i = 0; i < 3; i++) {
Description parent = Description.createSuiteDescription("Parent_" + i);
for (int j = 0; j < 3; j++) {
Description child = Description.createTestDescription(Exception.class, "Child_" + j);
parent.addChild(child);
Failure failure = new Failure(child, new Exception());
notifier.fireTestFailure(failure);
}
Failure failure = new Failure(parent, new Exception());
notifier.fireTestFailure(failure);
}
}
}
的问题是,当我使用这个亚军运行测试,我可以看到连续失败,父母和孩子,而不是组合在一起:
Results :
Tests in error:
Child_0(java.lang.Exception)
Child_1(java.lang.Exception)
Child_2(java.lang.Exception)
Parent_0
Child_0(java.lang.Exception)
Child_1(java.lang.Exception)
Child_2(java.lang.Exception)
Parent_1
Child_0(java.lang.Exception)
Child_1(java.lang.Exception)
Child_2(java.lang.Exception)
Parent_2
Tests run: 12, Failures: 0, Errors: 12, Skipped: 0
而且,我期望看到他们组合在一起,当我运行这个测试在Eclipse - 但那并非如此。我错过了什么?它甚至有可能吗?
它按正确顺序打印出来,以解除测试失败。你对此有什么期待? – Perception 2012-02-21 21:36:27
好吧,我希望看到他们组合在一起。这不就是createSuiteDescription()和addChild()所要做的吗? – uzilan 2012-02-21 21:46:05