This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center




已关闭8年。




已解决:在此问题的底部查找有效的配置

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

我在用:
  • NCover 3.3.2
  • NUnit 2.5.4
  • FinalBuilder 6.3.0.2004

  • 所有工具都是截至今天的最新官方版本。

    我终于设法哄骗FB在.NET 4.0项目的NCover下运行我的单元测试,所以我得到了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什么? :NUnit测试覆盖率
  • 命令:C:\Program Files (x86)\NUnit 2.5.4\bin\net-2.0\nunit-console.exe
  • 命令参数:LVK.IoC.Tests.dll /noshadow /framework:4.0.30319 /process=single /nothread
  • 注意:我尝试过是否使用/process/nothread选项
  • 工作目录:%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug
  • 要概要分析的程序集列表:%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug\LVK.IoC.dll
  • 注意:我已经尝试仅列出程序集的名称,无论是否带有扩展名。

  • FB步骤的文档无济于事,因为它仅列出每个属性的次要句子,并且无法提供示例或故障排除提示。

    由于我想将覆盖率结果放入NDepend中以运行构建时分析,因此我希望该文件包含所需的信息。

    我也使用TestDriven,如果右键单击解决方案文件并选择“使用NCover测试”,则NCover-explorer会打开覆盖数据,如果我要求它向我显示包含覆盖文件的文件夹, .xml文件与上面的文件具有相同的结构,只是所有数据都应该存在,因此我拥有的工具当然能够生成它。

    有谁知道我在这里配置错误的地方吗?

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

    由于我将单元测试项目命名为与它测试的项目相同,仅后缀为.Tests,因此我将其从代码覆盖范围中排除。另外,我只需要专门包括自己的程序集(所有程序集均以LVK开头),否则我将得到TeamCity运行程序加载的某些程序集,这对覆盖率统计有轻微的影响。

    首先,我安装了最新的工具(截至本次编辑):
  • NCover 3.4.8
  • TeamCity 5.1.2
  • NUnit 2.5.5

  • TeamCity中构建屏幕上的配置如下:
  • 目标:重建
  • 配置:调试
  • 平台:任何CPU
  • .NET覆盖率工具: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运行器:NUnit 2.5.5
  • .NET运行时平台:自动(MSIL),版本:4.0
  • 从以下位置运行测试:** \ bin \ Debug * Tests.dll
  • 最佳答案

    据我所知,NCover无法涵盖.NET 4.0的测试。他们宣布了.NET 4.0的新版本,但尚未发布。

    查找有关主题here的信息。我个人没有这个任务的经验...

    更新:他们发布了具有.NET 4.0支持的NCover 3.4。也许您可以尝试一下。

    10-05 23:46