为什么 opencover 不写入指定的输出文件?

发布于 2024-12-01 11:10:11 字数 2627 浏览 2 评论 0原文

我正在从管理控制台使用以下命令行(为了清晰起见,将其括起来)运行 OpenCover。

packages\OpenCover.1.0.625\OpenCover.Console.exe -register:用户 -目标:packages\NUnit.2.5.10.11092\tools\nunit-console.exe -targetargs:“FooProject.nunit” -filter:+[] -output:coverage.xml

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

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

更新
我已按照此问题的答案 并删除了 -register 标志,但我仍然得到相同的输出

NUnit 版本 2.5.10.11092
版权所有 (C) 2002-2009 查理·普尔。
版权所有 (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 中的 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 行

承诺....

I'm running OpenCover with the following command line (wrapped for clarity) from an Admin Console.

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:+[] -output:coverage.xml

I get the output below but the specified coverage.xml file is not create.

Why isn't the output file created?

update
I have registered both the 32 and 64 bit profilers as suggested in the answers to this question and removed the -register flag, but I still get the same output

NUnit version 2.5.10.11092
Copyright (C) 2002-2009 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.

Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
CLR Version: 2.0.50727.5446 ( Net 2.0 )

ProcessModel: Default DomainUsage: Default
Execution Runtime: Default
..................F....F.F.............F............F..F..F......
Tests run: 58, Errors: 0, Failures: 7, Inconclusive: 0, Time: 1.5298027 seconds
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0

Errors and Failures:
1) Test Failure : FooProject.Tests.Controllers.BarControllerTests.Index
at FooProject.Tests.Controllers.BarControllerTests.Index() in C:\FooProject\FooProject.Tests\Controllers\BarControllerTests.cs:line 27

2) Test Failure : FooProject.Tests.Controllers.FringControllerTests.Index
at FooProject.Tests.Controllers.FringControllerTests.Index() in C:\FooProject\FooProject.Tests\Controllers\FringControllerTests.cs:line 107

3) Test Failure : FooProject.Tests.Controllers.FringControllerTests.Save
at FooProject.Tests.Controllers.FringControllerTests.Save() in C:\FooProject\FooProject.Tests\Controllers\FringControllerTests.cs:line 135

4) Test Failure : FooProject.Tests.Repositories.FringRepositoryTests.Foo
at FooProject.Tests.Repositories.FringRepositoryTests.Foo() in C:\FooProject\FooProject.Tests\Repositories\FringRepositoryTests.cs:line 17

5) Test Failure : FooProject.Tests.Services.BarServiceTests.Frob
at FooProject.Tests.Services.BarServiceTests.Frob() in C:\FooProject\FooProject.Tests\Services\BarServiceTests.cs:line 52

6) Test Failure : FooProject.Tests.Services.FringServiceTests.Frob
at FooProject.Tests.Services.FringServiceTests.Frob() in C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 39

7) Test Failure : FooProject.Tests.Services.FringServiceTests.Frob
at FooProject.Tests.Services.FringServiceTests.Frob() in C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 139

Committing....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最冷一天 2024-12-08 11:10:12

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

OpenCover 仅分析存在 PDB 的程序集。

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

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


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

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

It is probably because the profiler hasn't instrumented any assemblies due to missing PDBs.

OpenCover only profiles assemblies for which the PDBs exist.

Nunit copies the assemblies but not the PDBs to an alternate location before testing. Try using the /noshadow option.

NOTE: you may also wish to avoid the +[*]* option as this will mean that you may get instrumentation of all assemblies that you have PDBs i.e. Test assemblies as well as target assemblies and other 3rd party assemblies - this will cause the testing to be slow.


28 Aug 2011 - I have just tested this with the opencover tests and an .nunit file will do shadow copy and so no PDB files found - however if I -targetargs:"OpenCover.Test.nunit /noshadow" then the tests run as expected.

Also make sure the default configuration in the .nunit file has all your tests in it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文