为什么 opencover 不写入指定的输出文件?
我正在从管理控制台使用以下命令行(为了清晰起见,将其括起来)运行 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: 0Errors 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 272) Test Failure : FooProject.Tests.Controllers.FringControllerTests.Index
at FooProject.Tests.Controllers.FringControllerTests.Index() in C:\FooProject\FooProject.Tests\Controllers\FringControllerTests.cs:line 1073) Test Failure : FooProject.Tests.Controllers.FringControllerTests.Save
at FooProject.Tests.Controllers.FringControllerTests.Save() in C:\FooProject\FooProject.Tests\Controllers\FringControllerTests.cs:line 1354) Test Failure : FooProject.Tests.Repositories.FringRepositoryTests.Foo
at FooProject.Tests.Repositories.FringRepositoryTests.Foo() in C:\FooProject\FooProject.Tests\Repositories\FringRepositoryTests.cs:line 175) Test Failure : FooProject.Tests.Services.BarServiceTests.Frob
at FooProject.Tests.Services.BarServiceTests.Frob() in C:\FooProject\FooProject.Tests\Services\BarServiceTests.cs:line 526) Test Failure : FooProject.Tests.Services.FringServiceTests.Frob
at FooProject.Tests.Services.FringServiceTests.Frob() in C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 397) Test Failure : FooProject.Tests.Services.FringServiceTests.Frob
at FooProject.Tests.Services.FringServiceTests.Frob() in C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 139Committing....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这可能是因为探查器由于缺少 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.