我有一个ant项目,在其中添加了antunit测试。这是执行测试的目标。
<target name="test-build" depends="init-build">
<au:antunit>
<fileset file="test.xml"/>
<au:plainlistener/>
<au:xmllistener todir="${reports.antunit.dir}"/>
</au:antunit>
</target>
test.xml看起来像这样
<project xmlns:au="antlib:org.apache.ant.antunit">
<include file="build.xml" as="main"/>
<target name="tearDown" depends="main.clean"/>
<target name="test-project-name">
<echo>project name is ${ant.project.name}</echo>
<au:assertTrue>
<equals arg1="${ant.project.name}" arg2="gradle-to-ant"/>
</au:assertTrue>
</target>
</project>
当我运行
ant test-build
时,echo语句未打印到控制台或报告中。test-build:
[au:antunit] Build File: /etc/user/john/projects/gradle-to-ant/test.xml
[au:antunit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.033 sec
[au:antunit] Target: test-project-name took 0.012 sec
BUILD SUCCESSFUL
Total time: 0 seconds
我已经看到在props等其他项目中使用了echo。如何获得回声以在antunit测试中工作?
最佳答案
echo
任务的输出已捕获,因此您可以在其上使用断言(即assertLogContains
)。在props中,当您在antunit之外手动运行目标时,看起来echo
在那里。
如果要查看echo
的输出,则需要将logforwarder
测试侦听器添加到antunit
任务中,即
<au:antunit>
<fileset file="test.xml"/>
<au:plainlistener/>
<au:xmllistener todir="${reports.antunit.dir}"/>
<au:logforwarder/>
</au:antunit>