首页 文章

在FinalBuilder中为NUnit设置NCover [关闭]

提问于
浏览
3

Solved: Look at the bottom of this question for the working configuration


我试图在我的FinalBuilder项目中设置NCover以用于.NET 4.0 C#项目,但我的最终覆盖输出文件不包含覆盖数据 .

我在用:

所有工具都是今天的最新官方 .

我终于设法哄骗FB在NC 4.0下为.NET 4.0项目运行我的单元测试,所以我得到 Tests run: 184, ... ,这是正确的 .

但是,NCover的最终 Coverage.xml 文件输出几乎为空,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.3.2.6211" driverVersion="3.3.2" exportversion="3" viewdisplayname="" startTime="2010-04-22T08:55:33.7471316Z" measureTime="2010-04-22T08:55:35.3462915Z" projectName="" buildid="27c78ffa-c636-4002-a901-3211a0850b99" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml" viewfilterstyle="None" viewreportstyle="SequencePointCoveragePercentage" viewsortstyle="Name">
  <rebasedpaths />
  <filters />
  <documents>
    <doc id="0" excluded="false" url="None" cs="" csa="00000000-0000-0000-0000-000000000000" om="0" nid="0" />
  </documents>
</coverage>

FB日志中的输出是:

...
***************** End Program Output *****************

Execution Time: 1,5992 s

Coverage Xml: C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml
NCover Success

我对NCover的FB步骤的配置:

  • NCover what? :NUnit测试覆盖率

  • CommandC:\Program Files (x86)\NUnit 2.5.4\bin\net-2.0\nunit-console.exe

  • Command argumentsLVK.IoC.Tests.dll /noshadow /framework:4.0.30319 /process=single /nothread

  • 注意:我已尝试使用和不使用 /process/nothread 选项

  • Working directory%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug

  • List of assemblies to profile%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug\LVK.IoC.dll

  • 注意:我已经尝试过列出程序集的名称,无论是否包含扩展名 .

FB步骤的文档没有帮助,因为它只列出每个属性的小句子,并且未提供示例或故障排除提示 .

由于我想将覆盖结果拉入NDepend以运行构建时分析,我希望该文件包含我需要的信息 .

我也在使用TestDriven,如果我右键单击解决方案文件并选择"Test with NCover",NCover-explorer会打开覆盖数据,如果我要求它显示带有覆盖文件的文件夹,则会显示一个.xml文件与上面的结构相同,只有所有应该存在的数据,所以我拥有的工具当然能够产生它 .

有谁知道我在这里配置错了什么?


Solved :以下配置最终对我有用 . 它在构建的开始结果页面上生成代码覆盖率基本统计信息,并带有指向包含所有内容的详细报告的链接 .

由于我将我的单元测试项目命名为与它测试的项目相同,只有.Tests后缀,我将其排除在代码覆盖范围之外 . 此外,我必须专门包括我自己的程序集(所有程序都以LVK开头 . )否则我会得到TeamCity运行程序加载的一些程序集,这对我的覆盖率统计数据有轻微影响 .

首先,我安装了最新的工具(截至此编辑):

  • NCover 3.4.8

  • TeamCity 5.1.2

  • NUnit 2.5.5

TeamCity中构建屏幕上的配置如下:

  • 目标:重建

  • 配置:调试

  • 平台:任何CPU

  • .NET Coverage工具:NCover(3.x)

  • .NET运行时:.NET Framework 4.0,版本:本机

  • NCover 3的路径:%system.ncover.v3.x64.path%(这是Windows 2008 Server R2 64位)

  • 其他NCover参数:

//ias LVK.*
//eas .*Tests
//eas LVK\.CodeQuality
//ea LVK\.CodeQuality\.IgnoreCodeCoverageAttribute
  • 其他NCover报告参数:
//or FullCoverageReport:Html:{teamcity.report.path}
  • NUnit Runner:NUnit 2.5.5

  • .NET运行时平台:auto(MSIL),版本:4.0

  • 运行测试:** \ bin \ Debug * Tests.dll

2 回答

  • 0

    据我所知,NCover无法覆盖.NET 4.0的测试 . 他们宣布了.NET 4.0的新版本,但它还没有 .

    查找有关该主题的信息here . 就个人而言,我没有这项任务的经验......

    Update :他们发布了支持.NET 4.0的NCover 3.4 . 也许你试一试 .

  • 1

    我从这个帖子中找到了你的答案:NUnit isn't running Visual Studio 2010 code

    到nunit-console-x86.exe.config文件,在 <configuration> 下添加:

    <startup>
      <requiredRuntime version="v4.0.30319" />
    </startup>
    

    <runtime> 下添加

    <loadFromRemoteSources enabled="true" />
    

    为我修好了 . 我使用TeamCity而不是FinalBuilder .

    我也在使用NCover 3.4 .

相关问题