CruiseControl中应用NCover和NCoverExplore

曾经想在CruiseControl.Net上加入NCover和NCoverExplorer来输出测试案例覆盖代码的情况,当时因在Ncover.org上发现要$而作罢。

偶然获知其老版依然免费,心里痒痒,再次尝试。感觉CC的帮助写得不够完善,就来涂一篇。

 

配置CC项目

1 通过NCover调用NUnit做测试,就不需要在项目中其他地方再做一次了。NCover将在baseDirectory中生成Coverage.xml文件。

    <exec executable="D:\Studio\tools\NCover\NCover.console.exe" 
            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):

    <exec executable="D:\Studio\tools\NCover\NCoverExplorer.Console.exe" 
        baseDirectory
="D:\studio\" 
        buildArgs
="/x /r:4" />
    
</tasks>    

 

3 将NUnit、NCover和NCoverExplore的输出文件合并到本次集成的日志中(注意: merge节必须放在xmllogger之前):

<publishers>
    
<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 在编译的总报告中加入NCoverSummaryNCoverExplorerSummary

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

  其输出如图:

 
2 加入详细报告NCover.xsl 和 NCoverExplore.xsl

 

    <xslReportBuildPlugin description="NCover Report" actionName="NCoverBuildReport" xslFileName="xsl\NCover.xsl" />
    <xslReportBuildPlugin description="NCover Explore" actionName="NCoverBuildExplore" xslFileName="xsl\NCoverExplorer.xsl" />
    NCover.xsl 展示所有未调及的代码,其报告详细到代码行,爽!
    NCoverExplore.xsl展示一个直观的图形报告,如例:
3 对了,别忘了重启IIS
NCover的使用
* 只有编译出PDB符号文件的库,NCover才能检测
* NCover排除测试案例: //ea NUnit.Framework.TestFixtureAttribute
posted @ 2008-07-22 10:18  观无明  阅读(1227)  评论(3编辑  收藏  举报