作为我的Ant集成测试脚本的一部分,我运行一个MSBuild构建(只执行msbuild.exe),它在正面情况下工作正常。但是,Ant无法识别msbuild构建失败的时间。我怎样才能使它发挥作用?
编辑:
我可以通过执行可执行文件msbuild:
<target name="executeMsbuild">
<exec command="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe /t:build-for-tests ${csharp.dir}\msbuild.xml"/>
</target>
答案 0 :(得分:2)
向exec提供failonerror
属性。
还为msbuild.exe
路径提供属性。
还将命令行参数作为args
传递<target name="executeMsbuild">
<property name="msbuild-prog"
location="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe"
/>
<exec
executable="${msbuild-prog}"
failonerror="true"
>
<arg value="/t:build-for-tests"/>
<arg file="${csharp.dir}/msbuild.xml"/>
</exec>
</target>
答案 1 :(得分:0)
使用failonerror = true会立即为您提供“BUILD FAILED” 在大多数情况下,错误并且是足够的。
对于更复杂的错误处理,请使用= 来自Antelope taskuite(1)的try任务,它会给你一个 try / catch / finally(2),如java中所示。 Antelope还有一个限制任务(3),这是一个任务混合器,其他任务 被放入并提供超时。 限制可以与尝试或单独使用相结合
如果有人提到AntContrib,那就是另一个ant任务套件了 与Antelope相同的任务,但似乎是AntContrib的开发 已停止(4)
(1)Antelope Tasksuite (2)Manpage try task (3)Manpage limit task (4)Antelope <> AntContrib