CruiseControl中应用NCover和NCoverExplore
曾经想在CruiseControl.Net上加入NCover和NCoverExplorer来输出测试案例覆盖代码的情况,当时因在Ncover.org上发现要$而作罢。
偶然获知其老版依然免费,心里痒痒,再次尝试。感觉CC的帮助写得不够完善,就来涂一篇。
配置CC项目
1 通过NCover调用NUnit做测试,就不需要在项目中其他地方再做一次了。NCover将在baseDirectory中生成Coverage.xml文件。
baseDirectory="D:\studio\"
buildArgs="D:\Studio\tools\nunit\nunit-console.exe /noshadow D:\studio\tests\bin\Release\MyTest.dll /xml:D:\studio\nunit-results.xml" />
2 接下来基于Coverage.xml生成NCoverExplore报告(CoverageReport.xml):
baseDirectory="D:\studio\"
buildArgs="/x /r:4" />
</tasks>
3 将NUnit、NCover和NCoverExplore的输出文件合并到本次集成的日志中(注意: merge节必须放在xmllogger之前):
<merge>
<files>
<file>D:\studio\nunit-results.xml</file>
<file>D:\studio\Coverage.xml</file>
<file>D:\studio\CoverageReport.xml</file>
</files>
</merge>
<xmllogger logDir="log" />
</publishers>
配置Web DashBoard
1 在编译的总报告中加入NCoverSummary和NCoverExplorerSummary
<buildReportBuildPlugin>
<xslFileNames>
<xslFile>xsl\header.xsl</xslFile>
<xslFile>xsl\modifications.xsl</xslFile>
<xslFile>xsl\compile.xsl</xslFile>
<xslFile>xsl\compile-msbuild.xsl</xslFile>
<xslFile>xsl\unittests.xsl</xslFile>
<xslFile>xsl\fxcop-summary.xsl</xslFile>
<xslFile>xsl\NCoverSummary.xsl</xslFile>
<xslFile>xsl\NCoverExplorerSummary.xsl</xslFile>
<xslFile>xsl\SimianSummary.xsl</xslFile>
</xslFileNames>
</buildReportBuildPlugin>
其输出如图:
<xslReportBuildPlugin description="NCover Explore" actionName="NCoverBuildExplore" xslFileName="xsl\NCoverExplorer.xsl" />