我正在尝试使用Opencover for NUnit测试用例来运行代码覆盖。我正在按预期获得结果,但问题是在执行opencover时它再次运行测试。当我们单独运行测试时,我们不希望这种情况发生。以下是我的代码。
单元测试执行
<Exec Command="$(NUnit) @(AssembliesToTest->'"%(FullPath)"', ' ') /xml:"@(TestsDirectory)Unit-nunit-results.xml""
ContinueOnError="false" />
OpenCover执行
<Exec Command="$(OpenCoverExecutable) -register:user -target:$(NUnit) -targetargs:"/noshadow %(CodeCoverageAssemblies.fullpath) /domain:single" -mergeoutput -output:"$(OutputPath)\OpenCover-results.xml""
ContinueOnError="false" />
有没有办法在不执行测试两次的情况下获得测试和代码覆盖结果。
先谢谢,
的Dinesh。
答案 0 :(得分:4)
很抱歉答案是否定的 - OpenCover会对您的代码进行检测,以确定测试期间执行的代码。
为什么不使用OpenCover运行测试一次。如果您需要查看测试运行器的错误代码,那么您可以使用-returntargetcode[:<opencoverreturncodeoffset>]
,以便返回目标进程的退出代码作为OpenCover的退出代码,并将任何与OpenCover相关的退出代码移动到新的范围。 e.g。
-returntargetcode:1000