在Ant中是否可以使用不同的参数多次调用相同的目标?
我的命令如下所示:
ant unittest -Dproject='proj1' unittest -Dproject='proj2'
Run Code Online (Sandbox Code Playgroud)
问题是unittest运行两次,但仅适用于proj2:
unittest:
[echo] Executing unit test for project proj2
unittest:
[echo] Executing unit test for project proj2
Run Code Online (Sandbox Code Playgroud)
我知道我可以运行两个单独的ant命令,但这会导致单元测试报告文件出现其他问题.
sud*_*ode 24
您可以使用antcall任务添加另一个目标,使用不同的参数两次调用unittest目标
<project name="test" default="test">
<target name="test">
<antcall target="unittest">
<param name="project" value="proj1"/>
</antcall>
<antcall target="unittest">
<param name="project" value="proj2"/>
</antcall>
</target>
<target name="unittest">
<echo message="project=${project}"/>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
输出:
test:
unittest:
[echo] project=proj1
unittest:
[echo] project=proj2
BUILD SUCCESSFUL
Total time: 0 seconds
Run Code Online (Sandbox Code Playgroud)
或者,您可以将unittest目标更改为macrodef:
<project name="test" default="test">
<target name="test">
<unittest project="proj1"/>
<unittest project="proj2"/>
</target>
<macrodef name="unittest">
<attribute name="project"/>
<sequential>
<echo message="project=@{project}"/>
</sequential>
</macrodef>
</project>
Run Code Online (Sandbox Code Playgroud)