Build 是否有方法将生成状态获取为属性?

Build 是否有方法将生成状态获取为属性?,build,msbuild,continuous-integration,teamcity,Build,Msbuild,Continuous Integration,Teamcity,我使用MSBuild构建了一个丑陋的Teamcity构建配置。它执行自定义应用程序(测试运行程序),该应用程序使用自定义消息向teamcity报告测试结果 ##teamcity[testStarted name='test1'] ##teamcity[testFailed name='test1' message='failure message' details='message and stack trace'] 在teamcity的“构建概述和测试”选项卡中显示 Teamcity识别失败

我使用MSBuild构建了一个丑陋的Teamcity构建配置。它执行自定义应用程序(测试运行程序),该应用程序使用自定义消息向teamcity报告测试结果

##teamcity[testStarted name='test1']
##teamcity[testFailed name='test1' message='failure message' details='message and stack trace']
在teamcity的“构建概述和测试”选项卡中显示

Teamcity识别失败的测试,如果任何测试失败,它会将构建标记为失败:

稍后在MSBuild目标中,我将根据测试结果为CV添加标签。 是否有方法将生成状态(如果失败、挂起、警告)作为属性获取?类似于%build.status%的内容?格式不重要-如果是字符串或数字


PS:我知道解决我的问题的最佳方法是修改应用程序,以便在测试失败时返回非零退出代码。

TeamCty似乎没有直接公开这一点,但可以使用REST api获取状态。下面是一个使用curl的示例;但您也可以使用uwe PowserShell的Invoke rest方法

以下是导致我用于测试的测试失败的msbuild脚本:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="Test">
    <Message Importance="high" Text="##teamcity[testStarted name='test1']" />
    <Message Importance="high" Text="##teamcity[testFailed name='test1' message='failure message' details='message and stack trace']" />
  </Target>

</Project>
这张照片是:

BuildStatus = FAILURE

除0以外的任何%errorlevel%都意味着构建失败。请详细说明一下。例如“向teamcity报告测试结果”。这些结果如何准确地显示在TC中?“基于测试结果”您希望这些结果采用什么格式?“获取构建状态”同样的问题。构建状态是什么和/或您希望它采用什么格式?
BuildStatus = FAILURE