【发布时间】:2010-11-28 21:00:17
【问题描述】:
在 Microsoft Team Foundation Server 中设置 CI,我有一个构建,它将构建解决方案并执行解决方案中的所有单元测试。
目前,如果构建成功并且单元测试失败,则构建将显示为部分成功。当单元测试失败时,我想将构建显示为失败。
谁能告诉我有没有办法实现这个功能?
【问题讨论】:
标签: unit-testing tfs continuous-integration
在 Microsoft Team Foundation Server 中设置 CI,我有一个构建,它将构建解决方案并执行解决方案中的所有单元测试。
目前,如果构建成功并且单元测试失败,则构建将显示为部分成功。当单元测试失败时,我想将构建显示为失败。
谁能告诉我有没有办法实现这个功能?
【问题讨论】:
标签: unit-testing tfs continuous-integration
如果您在构建机器上安装了 VS2008 SP1,那么您只需将以下属性添加到您的 TFSBuild.proj 文件中:
<TreatTestFailureAsBuildFailure>true</TreatTestFailureAsBuildFailure>
如果您没有安装 SP1 并且您不想安装它,那么您可以按照旧式路线进行操作,详细说明 here by the Dev Lead on the TFS Build team, Aaaron Hallberg:
<Target Name="AfterTest">
<!-- Refresh the build properties. -->
<GetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)"
Condition=" '$(IsDesktopBuild)' != 'true' ">
<Output TaskParameter="TestSuccess" PropertyName="TestSuccess" />
</GetBuildProperties>
<!-- Set CompilationStatus to Failed if TestSuccess is false. -->
<SetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)"
CompilationStatus="Failed"
Condition=" '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' ">
</Target>
【讨论】: