0

我正在从管理控制台使用以下命令行(为清楚起见包装)运行 OpenCover。

packages\OpenCover.1.0.625\OpenCover.Console.exe -register:user -target:packages\NUnit.2.5.10.11092\tools\nunit-console.exe -targetargs:"FooProject.nunit" -filter:+[ ] -输出:coverage.xml

我得到下面的输出,但未创建指定的coverage.xml 文件。

为什么没有创建输出文件?

更新我已按照此问题的答案中的
建议注册了 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 菲利普·克雷格。
版权所有。

运行时环境 -
操作系统版本: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:line 27 中的 FooProject.Tests.Controllers.BarControllerTests.Index

2) 测试失败:FooProject.Tests.Controllers.FringControllerTests.Index
() 中 C:\FooProject\FooProject.Tests\Controllers\FringControllerTests.cs:line 107 中的 FooProject.Tests.Controllers.FringControllerTests.Index

3) 测试失败:FooProject.Tests.Controllers.FringControllerTests.Save
在 C:\FooProject\FooProject.Tests\Controllers\FringControllerTests.cs:line 135 中的 FooProject.Tests.Controllers.FringControllerTests.Save()

4)测试失败:FooProject.Tests.Repositories.FringRepositoryTests.Foo
() 中的 FooProject.Tests.Repositories.FringRepositoryTests.Foo 在 C:\FooProject\FooProject.Tests\Repositories\FringRepositoryTests.cs:line 17

5) 测试失败:FooProject.Tests.Services.BarServiceTests.Frob
() 在 C:\FooProject\FooProject.Tests\Services\BarServiceTests.cs:line 52 中的 FooProject.Tests.Services.BarServiceTests.Frob

6) 测试失败:FooProject.Tests.Services.FringServiceTests.Frob
() 中的 FooProject.Tests.Services.FringServiceTests.Frob 在 C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 39

7) 测试失败:FooProject.Tests.Services.FringServiceTests.Frob() 在 C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 139 中的 FooProject.Tests.Services.FringServiceTests.Frob

承诺……

4

1 回答 1

2

这可能是因为探查器由于缺少 PDB 而没有检测任何程序集。

OpenCover 仅对存在 PDB 的程序集进行概要分析。

Nunit 在测试之前将程序集而不是 PDB 复制到备用位置。尝试使用/noshadow选项。

注意:您可能还希望避免使用+[ * ]*选项,因为这意味着您可以检测您拥有 PDB 的所有程序集,即测试程序集以及目标程序集和其他第 3 方程序集 - 这将导致测试要慢。


2011 年 8 月 28 日 - 我刚刚使用 opencover 测试对此进行了测试,一个 .nunit 文件将执行卷影复制,因此没有找到 PDB 文件 - 但是如果我-targetargs:"OpenCover.Test.nunit /noshadow"则测试按预期运行.

还要确保 .nunit 文件中的默认配置包含所有测试。

于 2011-08-27T12:17:55.630 回答