我正在使用 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 开关进行每个用户的注册,即注册(和注销)而不需要完整的管理员权限。
关于c# - OpenCover 生成一个空报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548161/