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