13

复制步骤:

  1. 在 Windows 7 Ultimate 32 位版本的 VS 2010 Professional 中创建 C# 项目。
  2. 使用 VS C# 单元测试向导编写一些单元测试
  3. 下载并安装 TestDriven.Net 的最新 RTM 或 Beta 版本。
  4. 右键单击测试项目并选择使用 NCover 进行测试
  5. 等待
  6. 看到 NCover 的窗口是空的

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

到目前为止,我已经尝试重新启动、卸载 RTM 版本并安装 Beta 版本,并在 Debug & Release 模式下运行。

使用输出窗口文本更新:

------ 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.
4

2 回答 2

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. 在 1.5.8 之前,MSTest 和 NCover 集成存在一些问题。尝试用 NUnit 重现它,看看会发生什么(实际上恕我直言,无论如何我都没有看到 MSTest 比 NUnit 有任何优势)。
  3. 除了 NCover 之外,您还运行任何其他分析器吗?是这样,尝试禁用它们。

编辑:尝试按照本文中的步骤操作。有一个名为“NCover With TestDriven.NET”的部分。
似乎 NCover 的分析器没有正确注册,所以主要你要做的就是完全手动删除它(TDD.Net 可能不会为你做),然后才重新安装它。

于 2012-01-06T13:40:01.610 回答
0
  1. 卸载 TestDriven.net 的 Beta 版
  2. 安装 RTM 版本的 TestDriven.net

如KiwiDude 所述,这两个步骤有效,因为 NCover 的分析器未正确注册。

于 2012-01-12T05:16:00.033 回答