NUnit 测试的 OpenCover 覆盖率

Din*_*esh 2 opencover

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

单元测试执行

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

公开执行

<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" />
Run Code Online (Sandbox Code Playgroud)

有没有办法在不执行两次测试的情况下获得测试和代码覆盖结果。

提前致谢,

迪内什。

Sha*_*lde 5

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

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

-returntargetcode:1000
Run Code Online (Sandbox Code Playgroud)