我想在运行时识别我的JUnit
测试是否从ant
运行。这样做的原因是,如果它是从ant
运行的,我想将信息记录到日志文件中,否则我只想写入标准输出。
Ant 内置的 JUnit Task 有一个 showoutput
属性,它将把测试产生的任何输出发送到 ant 的日志记录系统。
另请参阅此SO问题antjunit任务不报告有关报告选项的详细信息。
实现此目的的一种方法是在 Ant 脚本的 junit 任务中包含属性:
<junit fork="yes">
<jvmarg value="-Druntime.agent=ANT"/>
...
</junit>
然后,在 JUnit 测试工具中查询该属性的存在和/或属性:
String agent = System.getProperty("runtime.agent");
if ("ANT".equals(agent)) {
// set up file logging
} else {
// set up STDOUT logging
}