我正在使用以下命令行运行OpenCover(为了清楚起见,将其打包)。
packages \ OpenCover.1.0.625 \ OpenCover.Console.exe -register:user -target:包\ NUnit.2.5.10.11092 \工具\ NUnit的,console.exe -targetargs: “FooProject.nunit” -filter:+ [] -output:coverage.xml
我得到下面的输出但是没有创建指定的coverage.xml文件。
为什么输出文件没有创建?
更新
我按the answers to this question中的建议注册了32位和64位分析器并删除了-register
标志,但我仍然得到相同的输出
NUnit版本2.5.10.11092
版权所有(C)2002-2009 Charlie Poole 版权所有(C)2002-2004 James W. Newkirk,Michael C. Two,Alexei A. Vorontsov 版权所有(C)2000-2002 Philip Craig 版权所有。运行时环境 -
操作系统版本:Microsoft Windows NT 6.1.7601 Service Pack 1
CLR版本:2.0.50727.5446(Net 2.0)ProcessModel:默认DomainUsage:默认
执行运行时:默认
..................˚F.... FF ............˚F............˚F ..F..F ......
测试运行:58,错误:0,失败:7,不确定:0,时间:1.5298027秒
未运行:0,无效:0,忽略:0,跳过:0错误和失败:
1)测试失败:FooProject.Tests.Controllers.BarControllerTests.Index
在C:\ FooProject \ FooProject.Tests \ Controllers \ BarControllerTests.cs中的FooProject.Tests.Controllers.BarControllerTests.Index():第27行2)测试失败:FooProject.Tests.Controllers.FringControllerTests.Index
在C:\ FooProject \ FooProject.Tests \ Controllers \ FringControllerTests.cs中的FooProject.Tests.Controllers.FringControllerTests.Index():第107行3)测试失败:FooProject.Tests.Controllers.FringControllerTests.Save
在C:\ FooProject \ FooProject.Tests \ Controllers \ FringControllerTests.cs中的FooProject.Tests.Controllers.FringControllerTests.Save():第135行4)测试失败:FooProject.Tests.Repositories.FringRepositoryTests.Foo
在C:\ FooProject \ FooProject.Tests \ Repositories \ FringRepositoryTests.cs中的FooProject.Tests.Repositories.FringRepositoryTests.Foo():第17行5)测试失败:FooProject.Tests.Services.BarServiceTests.Frob
在C:\ FooProject \ FooProject.Tests \ Services \ BarServiceTests.cs中的FooProject.Tests.Services.BarServiceTests.Frob():第52行6)测试失败:FooProject.Tests.Services.FringServiceTests.Frob
在C:\ FooProject \ FooProject.Tests \ Services \ FringServiceTests.cs中的FooProject.Tests.Services.FringServiceTests.Frob():第39行7)测试失败:FooProject.Tests.Services.FringServiceTests.Frob 在C:\ FooProject \ FooProject.Tests \ Services \ FringServiceTests.cs中的FooProject.Tests.Services.FringServiceTests.Frob():第139行
提交......
答案 0 :(得分:2)
可能是因为由于缺少PDB,探查器没有检测任何组件。
OpenCover仅配置PDB所在的配置文件。
Nunit在测试之前将程序集而不是PDB复制到备用位置。尝试使用 / noshadow 选项。
注意:您可能还希望避免 + [ * ] * 选项,因为这意味着您可能会获得有PDB的所有程序集的检测,即测试程序集以及目标程序集和其他第三方程序集 - 这将导致测试速度变慢。
2011年8月28日 - 我刚刚使用opencover测试对此进行了测试,并且.nunit文件将执行卷影复制,因此找不到PDB文件 - 但是如果我 -targetargs:“OpenCover.Test.nunit / noshadow” 然后测试按预期运行。
还要确保.nunit文件中的默认配置包含所有测试。