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>  

  其输出如图:

CruiseControl中应用NCover和NCoverExplore_第1张图片
 
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展示一个直观的图形报告,如例:
CruiseControl中应用NCover和NCoverExplore_第2张图片
3 对了,别忘了重启IIS
NCover的使用
* 只有编译出PDB符号文件的库,NCover才能检测
* NCover排除测试案例: //ea NUnit.Framework.TestFixtureAttribute

你可能感兴趣的:(over)