NUnit 测试的 OpenCover 覆盖率

OpenCover coverage for NUnit test

我正在尝试 运行 使用 Opencover 对 NUnit 测试用例进行代码覆盖。我得到了预期的结果,但问题是在执行 opencover 时它再次 运行ning 测试。我们不希望发生这种情况,因为我们 运行 单独进行测试。下面是我的代码。

单元测试执行

<Exec Command="$(NUnit) @(AssembliesToTest->'&quot;%(FullPath)&quot;', ' ') /xml:&quot;@(TestsDirectory)Unit-nunit-results.xml&quot;" 
      ContinueOnError="false" />

OpenCover 执行

<Exec Command="$(OpenCoverExecutable) -register:user -target:$(NUnit) -targetargs:&quot;/noshadow %(CodeCoverageAssemblies.fullpath) /domain:single&quot; -mergeoutput -output:&quot;$(OutputPath)\OpenCover-results.xml&quot;" 
      ContinueOnError="false" />

有什么方法可以在不执行两次测试的情况下获得测试和代码覆盖率结果。

提前致谢,

Dinesh.

抱歉,答案是否定的 - OpenCover 在代码执行时检测代码以确定测试期间执行的代码。

为什么不使用 OpenCover 运行 测试一次呢?如果您需要查看测试的错误代码 运行ner 那么您可以使用 -returntargetcode[:<opencoverreturncodeoffset>] 这样您的目标进程的退出代码将作为 OpenCover 的退出代码和任何与 OpenCover 相关的退出代码返回被移动到新的范围。例如

-returntargetcode:1000