我使用OpenCover来确定一个简单c项目的代码覆盖率。
问题
虽然我可以看到mstest正在运行单元测试(并在随后运行),但是生成的报告是空的。
细节
这是我使用的命令:

opencover.console.exe -register -arch:32
                      -target:"%VSINSTALLDIR%\Common7\IDE\mstest.exe"
                      -targetargs:"/testcontainer:calculatortest.dll"
                      -filter:+[calculator.dll]* -output:coverage.xml

输出
Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.

Loading calculatortest.dll...
Starting execution...

Results               Top Level Tests
-------               ---------------
Passed                CalculatorTest.StatisticsTest.AddOccurrenceTest
Passed                CalculatorTest.StatisticsTest.AvgTest
2/2 test(s) Passed

Summary
-------
Test Run Completed.
  Passed  2
  ---------
  Total   2
Results file:  e:\Users\erno\Documents\Visual Studio 2010\Projects\CodeStatistics\CalculatorTest\bin\Debug\TestResults\erno_ERNO01 2011-07-01 14_27_06.trx
Test Settings: Default Test Settings
Visited Classes 0 of 0 (NaN)
Visited Methods 0 of 0 (NaN)
Visited Points 0 of 0 (NaN)

生成报告的内容:
<?xml version="1.0" encoding="utf-8"?>
<CoverageSession xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <VisitPoints />
</CoverageSession>

环境
此代码在Windows 7 64位上运行,但在32位的Visual Studio命令提示符环境中执行。
编辑我正在目录中运行命令,其中包含单元测试的调试版本,并将opencover目录添加到环境路径中。
我试过的
我用partcover搜索了类似的问题(因为opencover似乎是一种分支),但是找不到任何与问题匹配的东西并给出了解决方案。
编辑我也测试了一个更广泛的过滤器-filter:+[*]*,但这并没有以任何方式改变输出。
编辑我还测试了mstest/noisolation参数as mentioned here。仍然没有结果。
编辑我也测试了完全删除过滤器和回落到默认过滤器。没有结果。

最佳答案

您应该能够使用-register:user开关来完成每个用户的注册,即它注册(和注销)而不需要完全的管理权限。

07-26 06:43