有一部分带有junit任务的ant脚本:
...
<target name="test">
<mkdir dir="path_to_report_dir">
<junit fork="true" printsummary="true" showoutput="true" maxmemory="1024M">
<classpath ... />
<batchtest todir="path_to_report_dir">
<formatter type="xml" />
<fileset ... />
</batchtest>
</junit>
</target>
...
此脚本适用于Eclipse和命令行。但它在TeamCity中不起作用。 TeamCity中的最后一条信息是: [mkdir]创建了dir:path_to_report_dir 处理退出代码:0
看起来junit任务不起作用,它也停止执行所有脚本。麻烦在哪里?
答案 0 :(得分:1)
原因发生在<fileset>
文件列表中。 TeamCity版本的Ant不适用于"/test/"
等字符串(这意味着select all files recursively);它只适用于"**/test/*.class"
之类的字符串。本地版本的Ant支持两种变体。
感谢。
答案 1 :(得分:0)
不知道这是否有帮助....但这是我的标准测试目标:
<target name="test" depends="compile-tests">
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<path refid="test.path"/>
<pathelement path="${classes.dir}"/>
<pathelement path="${test.classes.dir}"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes" todir="${test.reports.dir}">
<fileset dir="${test.src.dir}">
<include name="**/*Test*.java"/>
<exclude name="**/AllTests.java"/>
</fileset>
</batchtest>
</junit>
</target>
构建输出:
test:
[junit] Running org.demo.AppTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.056 sec
备注强>