我正在使用ant1-9-0.jar
,ant-junit-1.9.0.jar
并ant-launcher-1.9.0.jar
以编程方式运行JUnit测试.
在我的代码中,我有这个函数返回JUnit任务:
/**
* Generates a JUnit task which runs every single test in a new JVM
* @return task The JUnit task
* @throws Exception
*/
public JUnitTask generateRunTestsTask() throws Exception {
/* New JUnit task */
JUnitTask task = new JUnitTask();
task.init();
/* Summary settings */
JUnitTask.SummaryAttribute sa = new JUnitTask.SummaryAttribute();
sa.setValue("withOutAndErr");
task.setPrintsummary(sa);
/* JVM configuration */
task.setFork(true);
task.setDir(new File(this.deliveryBinDir));
task.createJvmarg().setValue("-Duser.dir=" + this.deliveryBinDir);
/* Output to file */
FormatterElement.TypeAttribute typeFile = new FormatterElement.TypeAttribute();
typeFile.setValue("xml");
FormatterElement formatToFile = new FormatterElement();
formatToFile.setType(typeFile);
task.addFormatter(formatToFile);
/* Task options */
task.setHaltonfailure(false);
task.setShowOutput(true);
task.setOutputToFormatters(true);
List<String> testSuites = getTestJarList(this.deliveryLibFolder);
for (String singleSuite : testSuites) {
JUnitTest test = new JUnitTest(singleSuite);
/* Sets reports location */
test.setTodir(this.testReportsFolder);
task.addTest(test);
}
return task;
}
Run Code Online (Sandbox Code Playgroud)
JUnit测试运行没有问题,输出成功存储到.xml
文件中.
我需要将输出打印到控制台,因为我想要实时结果(不仅在整个过程结束时).为此,我FormatterElement
在/** Output to file */
块下方添加了第二个:
/* Output to screen */
FormatterElement.TypeAttribute typeScreen = new FormatterElement.TypeAttribute();
typeScreen.setValue("plain");
FormatterElement formatToScreen = new FormatterElement();
formatToScreen.setType(typeScreen);
formatToScreen.setUseFile(false);
formatToScreen.setOutput(System.out);
task.addFormatter(formatToScreen);
Run Code Online (Sandbox Code Playgroud)
但我的控制台仍然不显示日志.我也试图删除formatToFile
FormatterElement
,但没有成功.你有什么建议吗?
St\xc3\xa9phane,您的 junit 任务代码似乎对于处理控制台的输出是正确的。
\n\n我已经检查了 ANT Main 类的源代码,您需要定义一个构建侦听器才能显示日志。
\n\n这是定义用于日志记录目的的默认侦听器的工作示例:
\n\nBuildLogger logger = new DefaultLogger();\nlogger.setOutputPrintStream(System.out);\nlogger.setErrorPrintStream(System.err);\nlogger.setMessageOutputLevel(Project.MSG_INFO);\nlogger.setEmacsMode(true);\nproject.addBuildListener(logger); //add build listener to your define project\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
1205 次 |
最近记录: |