Msbuild忽略生成错误 上下文

Msbuild忽略生成错误 上下文,msbuild,nunit,jenkins-pipeline,msbuild-task,dotcover,Msbuild,Nunit,Jenkins Pipeline,Msbuild Task,Dotcover,我有一个在jenkins管道中执行的任务集成测试和代码覆盖率 使用的工具是dotcover和Nunit 当配置为集成时,在集成测试构建期间通过dotcover执行Nunit 问题 当我在visual studio中执行配置集成时,出现了一些错误测试,然后构建失败,一切正常,但是当使用msbuild执行相同配置时,它不会返回任何错误代码,那么jenkins pipelin不会失败 这种情况让我们陷入了微妙的境地,因为我们再也不能相信我们的构建管道了 我在网上寻找解决方案已经有几天了,但我仍然坚持这

我有一个在jenkins管道中执行的任务集成测试和代码覆盖率

使用的工具是dotcoverNunit

当配置为集成时,在集成测试构建期间通过dotcover执行Nunit

问题 当我在visual studio中执行配置集成时,出现了一些错误测试,然后构建失败,一切正常,但是当使用msbuild执行相同配置时,它不会返回任何错误代码,那么jenkins pipelin不会失败

这种情况让我们陷入了微妙的境地,因为我们再也不能相信我们的构建管道了

我在网上寻找解决方案已经有几天了,但我仍然坚持这一点,这就是为什么我在这里寻求你们的帮助

谢谢你的帮助

文件夹 詹金斯档案 在IntegrationProject.csproj中
您应该能够使用dotcover参数从nunit获取返回代码

<Target Name="CoverageReport" AfterTargets="CopySqlFiles" Condition="$(Configuration) == Integration">
    <Exec Command="..\packages\JetBrains.dotCover.CommandLineTools.2018.1.3\tools\dotCover.exe analyse ^
        /TargetExecutable=..\packages\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe ^
        /ReturnTargetExitCode ^
        /TargetArguments=&quot;$(TargetPath)&quot; ^
        /Filters=-:nunit.framework;-:IntegrationProjectTest;-:type=MyNamespace.View.*;-:type=*Test ^
        /TargetWorkingDir=$(TargetDir) ^
        /Output=$(TargetDir)\TestResult\MyCoverageReport.html ^
        /ReportType=HTML
        /ReturnTargetExitCode">
      <Output TaskParameter="ExitCode" PropertyName="DotCoverExitCode" />
    </Exec>

    <Message Text="Unit Tests Failed!" Condition="$(DotCoverExitCode) != '0'"/>  

</Target>


创建二进制日志(
-bl
Msbuild参数)时,它是否显示正在执行的项目和目标?我建议你使用这个工具。谢谢你提供的工具,我会看一看。你好,你的答案解决了我的问题,我使用了ReturnTargetExitCode,这个参数在我的任务中,但我当时没有使用它,现在没事了。谢谢和问候
<Target Name="CoverageReport" AfterTargets="CopySqlFiles" Condition="$(Configuration) == Integration">
    <Exec Command="..\packages\JetBrains.dotCover.CommandLineTools.2018.1.3\tools\dotCover.exe analyse /TargetExecutable=..\packages\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe /ReturnTargetExitCode /TargetArguments=&quot;$(TargetPath)&quot; /Filters=-:nunit.framework;-:IntegrationProjectTest;-:type=MyNamespace.View.*;-:type=*Test /TargetWorkingDir=$(TargetDir) /Output=$(TargetDir)\TestResult\MyCoverageReport.html /ReportType=HTML" />
</Target>
<Target Name="CoverageReport" AfterTargets="CopySqlFiles" Condition="$(Configuration) == Integration">
    <Exec Command="..\packages\JetBrains.dotCover.CommandLineTools.2018.1.3\tools\dotCover.exe analyse ^
        /TargetExecutable=..\packages\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe ^
        /ReturnTargetExitCode ^
        /TargetArguments=&quot;$(TargetPath)&quot; ^
        /Filters=-:nunit.framework;-:IntegrationProjectTest;-:type=MyNamespace.View.*;-:type=*Test ^
        /TargetWorkingDir=$(TargetDir) ^
        /Output=$(TargetDir)\TestResult\MyCoverageReport.html ^
        /ReportType=HTML
        /ReturnTargetExitCode">
      <Output TaskParameter="ExitCode" PropertyName="DotCoverExitCode" />
    </Exec>

    <Message Text="Unit Tests Failed!" Condition="$(DotCoverExitCode) != '0'"/>  

</Target>