TeamCity、xUnit.net、MSBuild和静音测试-未静音测试失败应停止生成吗?

TeamCity、xUnit.net、MSBuild和静音测试-未静音测试失败应停止生成吗?,msbuild,teamcity,xunit.net,Msbuild,Teamcity,Xunit.net,我正在使用TeamCity构建C#项目,直到最近我才能够使用TeamCity的“静音失败测试”功能,b/C导致MSBuild脚本中的失败(返回代码-1),无论测试是否静音 对我的MSBuild脚本的此更改允许静音工作: <UsingTask AssemblyFile="xunit.runner.msbuild.dll" TaskName="Xunit.Runner.MSBuild.xunit"/> <Target Name="Test"> <

我正在使用TeamCity构建C#项目,直到最近我才能够使用TeamCity的“静音失败测试”功能,b/C导致MSBuild脚本中的失败(返回代码-1),无论测试是否静音

对我的MSBuild脚本的此更改允许静音工作:

<UsingTask
    AssemblyFile="xunit.runner.msbuild.dll"
    TaskName="Xunit.Runner.MSBuild.xunit"/>

<Target Name="Test">
    <xunit Assembly="MyTests\bin\Debug\MyTests.dll" ContinueOnError="true" />
</Target>

ContinueOnError=“true”
是一个加法(我实际上已将其参数化,而不是使用硬编码的值)

现在静音确实起作用了,当静音测试失败时,我的构建会成功继续。当非静音测试失败时,我的构建也会失败

我遇到的问题是,当非静音测试失败时,构建会继续进行,并运行所有操作(后续构建步骤等),而失败将在构建结束时决定。在我的例子中,我们正在打包构建工件,并自动部署到我们的集成环境中——当构建由于(非静音)测试失败而失败时,这两种情况都不应该发生


当非静音测试失败时,我不知道如何提前结束构建。有人有什么想法吗?

截至2014年2月,这是TeamCity的一个众所周知的问题。两个相关的未决问题:

  • -显然,构建失败不会检查后续步骤,它只会在最后检查
  • -这是我试图用
    ContinueOnError=“true”
所以底线是,TeamCity测试静音是不可用的。但是,您可以使用xUnit测试跳过,例如
[事实(Skip=“Explain here why the test skipping”)]