【问题标题】:Why isn't opencover writing to the specified output file?为什么 opencover 不写入指定的输出文件?
【发布时间】:2011-11-05 00:54:11
【问题描述】:

我正在从管理控制台使用以下命令行(为清楚起见包装)运行 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:+[] -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:默认域使用:默认
执行运行时:默认
........F........FF............F............F ..F..F......
测试运行:58,错误:0,失败:7,不确定:0,时间:1.5298027 秒
未运行:0,无效:0,忽略:0,跳过:0

错误和失败:
1) 测试失败:FooProject.Tests.Controllers.BarControllerTests.Index
在 FooProject.Tests.Controllers.BarControllerTests.Index() 在 C:\FooProject\FooProject.Tests\Controllers\BarControllerTests.cs:line 27

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

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

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

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
在 C:\FooProject\FooProject.Tests\Services\FringServiceTests.cs:line 39 中的 FooProject.Tests.Services.FringServiceTests.Frob()

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

提交....

【问题讨论】:

    标签: .net nunit code-coverage opencover


    【解决方案1】:

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

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

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

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


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

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

    【讨论】:

    • 得到它的工作,但没有时间来诊断确切的问题。稍后会更新。干杯
    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多