我了解了如何使用Ant API运行JUnit测试并创建结果的XML。
String pathToReports = "/tmp/junitreports";
Project project = new Project();
JUnitTest test = null;
try
{
new File(pathToReports).mkdir();
JUnitTask task = new JUnitTask();
project.setProperty("java.io.tmpdir",pathToReports);
task.setProject(project);
FormatterElement.TypeAttribute type = new FormatterElement.TypeAttribute();
type.setValue("xml");
FormatterElement formater = new FormatterElement();
formater.setType(type);
task.addFormatter(formater);
test = new JUnitTest(TestClass.class.getName());
test.setTodir(new File(pathToReports));
task.addTest(test);
task.execute();
}
...
测试类别:
public class TestClass
{
@Test
public void test()
{
fail("failed");
}
}
代码运行良好。XML已经创建,我可以看到测试"失败"了。
现在我的问题是:有没有什么方法也可以通过程序获得测试结果?我希望以某种方式获得JUnitTest对象的更新版本,在那里我可以调用方法"failureCount()"。
任务执行后test.failurecount()当然会返回0。解析XML对我来说似乎很奇怪,因为失败的数量应该已经存储在某个地方了。
每次测试失败时,都可以有一个变量(int failedTests
)增量。您可以使用TestWatcher规则来完成此操作。
在所有测试运行后,你可以用打印出来(或者用它做任何你想做的事情…)
@AfterClass
public static void printFailedTestsCount() {
System.out.println(failedTests + " tests failed.");
}