如何让TestDriven.net使用NCover生成有用的代码覆盖率XML文件?

时间:2011-11-09 19:31:24

标签: c# .net xml visual-studio-2010 testdriven.net

Repro的步骤:

  1. 在Windows 7 Ultimate 32位版本的VS 2010 Professional中创建一个C#项目。
  2. 使用VS C#单元测试向导编写一些单元测试
  3. 下载并安装最新的RTM或Beta版TestDriven.Net。
  4. 右键单击测试项目,然后选择Test with NCover
  5. 等待
  6. 看到NCover的窗口是空的
  7. 如何让TestDriven.net使用NCover生成有用的代码覆盖率XML文件?

    到目前为止,我已尝试重新启动,卸载RTM版本并安装Beta版本,并在Debug&发布模式。

    使用输出窗口文本进行更新:

    ------ Test started: Assembly: TestProject1.dll ------
    
    NCover v1.5.8 - Code Coverage Analysis for .NET - http://ncover.com
    
    NCover.Console v1.5.8 - Code Coverage Analysis for .NET - http://ncover.org
    Copyright (c) 2004-2006 Peter Waldschmidt
    
    
    Command: C:\Program Files\TestDriven.NET 3\ProcessInvocation86.exe
    Command Args: "/assemblyName:TestDriven.TestRunner.Server, Version=3.2.2770.0, Culture=neutral, PublicKeyToken=50ecb853f8c6b8d2" "/xmlName:M:TestDriven.TestRunner.Coverage.NCoverCoverageTestRunner.OutOfProc.Run(System.String,System.String,System.String,System.String,System.String)" "/parameter:tcp://127.0.0.1:64445/7dbdb535-3602-4a8e-8bbc-f8be7eb83987" "/parameter:tcp://127.0.0.1:64445/fbff4f73-2438-43e4-b1f9-2bdaeb9c0907" "/parameter:C:\Users\Zian\Documents\Visual Studio 2010\Projects\ClassLibrary1\TestProject1\bin\Debug\TestProject1.dll" "/parameter" "/parameter"
    Working Directory: 
    Assemblies: ClassLibrary1;ClassLibrary1_Accessor;TestProject1
    Coverage Xml: C:\Users\Zian\AppData\Local\Temp\Mutant Design\TestDriven.NET 2.0\Coverage\ClassLibrary1\TestProject1.xml
    Coverage Log: Coverage.Log
    
    Waiting for profiled application to connect...Connected
    Configuring Profiler...
    ******************* Program Output *******************
    Unable to establish communications with the profiler. (0x2)
    
    NCover couldn't create a coverage report.
    

2 个答案:

答案 0 :(得分:2)

(假设您使用的是与TDD.Net一起提供的NCover 1.5.8)

我完全按照你的描述做了,而且效果很好...... 以下是一些需要考虑的事项:

  1. 您确定实际的xml文件是空的吗?试着在这里寻找它: C:\Users\USERNAME\AppData\Local\Temp\Mutant Design\TestDriven.NET 2.0\Coverage\YOURPROJECT,或使用类似Everything(很棒的免费搜索工具)来查找YourTestProject.xml。也许NCover GUI存在问题。
  2. MSTest& NCover集成之前 到1.5.8。尝试使用NUnit重现这一点,看看会发生什么 (实际上恕我直言,我认为MSTest对NUnit没有任何好处 反正)。
  3. 除了NCover之外,您还在运行任何其他profiler吗?是 所以,试着禁用它们。
  4. 编辑: 尝试按照this article中的步骤操作。有一个名为“NCover With TestDriven.NET”的部分 看起来NCover的分析器没有正确注册,所以主要是你要完全手动删除它(TDD.Net可能不会为你做),然后才重新安装它。

答案 1 :(得分:0)

  1. 卸载TestDriven.net的Beta版本
  2. 安装TestDriven.net的RTM版本
  3. 这两个步骤有效,因为NCover的探查器未正确注册,as described by KiwiDude