OpenCover生成一个空报告



我使用OpenCover来确定一个简单C#项目的代码覆盖率。

问题

虽然我可以看到MSTest正在运行单元测试(并成功(,但生成的报告是空的。

详细信息

这是我正在使用的命令:

opencover.console.exe -register -arch:32 
                      -target:"%VSINSTALLDIR%Common7IDEmstest.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:UsersernoDocumentsVisual Studio 2010ProjectsCodeStatisticsCalculatorTestbinDebugTestResultserno_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命令提示符环境中执行。

EDIT我正在单元测试的调试构建目录中运行命令,并将OpenCover目录添加到环境路径中。

我尝试了什么

我用PartCover搜索了类似的问题(因为OpenCover似乎是一种分支(,但找不到任何与问题相匹配的东西,也找不到解决方案。

EDIT我还使用更宽的过滤器-filter:+[*]*进行了测试,但这丝毫没有改变输出。

EDIT我还测试了这里提到的MSTest /noisolation参数。仍然没有结果。

EDIT我还通过完全删除过滤器并返回到默认过滤器进行了测试。没有结果。

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

休息后,我的头脑清醒了,怀疑是OpenCover完成的COM注册,所以我查看了事件日志。

事实上,COM注册失败了。因此,我决定尝试运行命令提示符,因为管理员怀疑我受到了UAC 的阻碍

运行包含/noisolation标志的命令会挂起进程。

如果没有此标志,则会生成并正确填写报告。

我想我会永久注册COM dll,这样我就可以使用我喜欢的任何凭据运行OpenCover。

我可能会做的另一件事是在OpenCover网站上添加一个问题,声明它正在吞噬一个异常。(除非Shaun Wilde读到这篇文章并击败我(

我在Windows XP上使用NUnit 2.6时遇到了类似的问题。每个报告都是空白的,直到我添加了神奇的寄存器:用户标志。@肖恩·王尔德,这面旗帜到底是干什么的?

相关内容

  • 没有找到相关文章

最新更新