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

时间:2011-08-27 09:42:10

标签: .net nunit code-coverage opencover

我正在使用以下命令行运行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行

     

提交......

1 个答案:

答案 0 :(得分:2)

可能是因为由于缺少PDB,探查器没有检测任何组件。

OpenCover仅配置PDB所在的配置文件。

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

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


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

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