我有一个TeamCity构建,其中一个步骤是.proj文件的MSBuild调用:
Runner type: MSBuild
Build file path: TestProject.proj
Targets: Test
在.proj里面,我有目标:
<Target Name="DeployTestService">
<Message Text="Deploying test service" />
<Exec Command="powershell -Command "& { myUsefulPsScript.ps }"" />
</Target>
<Target Name="Test">
// other stuff, then
<CallTarget Targets="DeployTestService" />
</Target>
,并且在大多数情况下效果很好。但是,如果Powershell脚本失败(引发了未处理的异常,并且我可以在完整的日志中看到其文本)并以非零代码退出,则在Teamcity构建结果中将看到以下内容:
Tests passed: (some number); exit code 1
而构建树只是说:
Build failure condition (1)
Process exited with code 1
[Time]Process exited with code 1
,直到获得完整的日志,我才真正知道哪个步骤失败了,以及如何准确。这并不是要解决最初的问题,而是要更快地找到错误的步骤。
是否有办法使Teamcity说类似“步骤N中的运行程序失败并显示此错误消息[我在完整日志中看到的消息]”?
答案 0 :(得分:0)
您需要使用Teamcity output format。例如,每次新测试开始时,打印:
##teamcity[testStarted name='foo|'s test']
通过这种方式,Teamcity将知道应用程序崩溃之前的最后一步或最后一次测试是什么,并且它将能够相应地格式化输出。