Jenkins结合.net平台工具之ReportGenerator

上一节咱们讲解了如何使用opencover生成单元测试覆盖率报告,opencover默认生成的report为xml格式,可读性并非特别强,若是靠阅读opencover生成的results.xml来分析测试结果显然是很是耗费时间和精力的. html

下面介绍一款工具,能够把opencover生成的xml覆盖率报告转化为交互的html. windows

继续使用上一节项目,使用nuget添加对reportgenerator的引用. 工具

Reportgenerator安装完成之后,在项目的packages目录下面会有如下目录 单元测试

ReportGeneratorxxx\tools 测试

咱们打开这个目录内容以下: ui

期中ReportGenerator.exe是咱们要使用的生成html报告的工具. 3d

这里咱们新建一个bat文件,命名为generateReport.bat,其中代码以下 xml

"E:\personal project\newTest2018\ConsoleApp1\packages\ReportGenerator.3.1.2\tools\ReportGenerator.exe" -reports:"E:\personal project\newTest2018\ConsoleApp1\NunitTest\bin\Debug\results.xml" -targetdir:"coverage" htm

第一个空格前为ReportGenerator所在位置, -reports后跟的参数为咱们用于生成html的xml文件,这个xml文件是上一节咱们使用opencover生成的. –targetdir是要存放xml报告的目录. blog

打开Jenkins,新建一个ReportGeneratorTest的项目,build栏添加windows batch command步骤,而后在命令框里输入刚建立的generateReport.bat的位置

点击保存,而后执行build Now,若是配置正确的话,则会生成一条成功构建记录,打开记录能够看到Console out输出的内容和下面相似

从控制台输出能够看到生成成功了,而后这个目录对咱们的意义并不大,咱们须要看到是生成的代码覆盖率报告.咱们打开目录下的coverage目录(在generateReport.bat里配置的输出目录).能够看到以下相似内容

期中index.htm为导航页面.咱们打开index.htm内容相似以下

能够看到上面是测试覆盖率的整体报告,包括建立时间,解析器,程序集数量,类数量,覆盖行数,未覆盖行数,行数覆盖率等.

下面则是每个类的覆盖率报告.并有图形化展现.

咱们点击类名(好比NunitTest.GeneralTest)则会进入这个类测试的更详细页面.以下图

期中上面是总结,下面是此类中每一个方法的覆盖率报告.右侧是方法/属性导航,点击会跳到这个方法/属性.点击会进入该方法/属性对应的代码

其中红色表示未覆盖的代码,绿色表明覆盖的代码.