上一节我们讲解了如何使用opencover生成单元测试覆盖率报告,opencover默认生成的report为xml格式,可读性并不是特别强,如果靠阅读opencover生成的results.xml来分析测试结果显然是非常耗费时间和精力的.
下面介绍一款工具,可以把opencover生成的xml覆盖率报告转化为交互的html.
继续使用上一节项目,使用nuget添加对reportgenerator的引用.
Reportgenerator安装完成以后,在项目的packages目录下面会有以下目录
ReportGeneratorxxx\tools
我们打开这个目录内容如下:
期中ReportGenerator.exe是我们要使用的生成html报告的工具.
这里我们新建一个bat文件,命名为generateReport.bat,其中代码如下
"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"
第一个空格前为ReportGenerator所在位置,
-reports后跟的参数为我们用于生成html的xml文件,这个xml文件是上一节我们使用opencover生成的.
–targetdir是要存放xml报告的目录.
打开Jenkins,新建一个ReportGeneratorTest的项目,build栏添加windows batch
command步骤,然后在命令框里输入刚创建的generateReport.bat的位置
点击保存,然后执行build Now,如果配置正确的话,则会生成一条成功构建记录,打开记录可以看到Console out输出的内容和下面类似
从控制台输出可以看到生成成功了,然后这个目录对我们的意义并不大,我们需要看到是生成的代码覆盖率报告.我们打开目录下的coverage目录(在generateReport.bat里配置的输出目录).可以看到如下类似内容
期中index.htm为导航页面.我们打开index.htm内容类似如下
可以看到上面是测试覆盖率的总体报告,包括创建时间,解析器,程序集数量,类数量,覆盖行数,未覆盖行数,行数覆盖率等.
下面则是每一个类的覆盖率报告.并有图形化展示.
我们点击类名(比如NunitTest.GeneralTest)则会进入这个类测试的更详细页面.如下图
期中上面是总结,下面是此类中每个方法的覆盖率报告.右侧是方法/属性导航,点击会跳到这个方法/属性.点击会进入该方法/属性对应的代码
其中红色表示未覆盖的代码,绿色代表覆盖的代码.
热门工具 换一换