Jenkins结合.net平台工具之ReportGenerator

Posted tylerzhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins结合.net平台工具之ReportGenerator相关的知识,希望对你有一定的参考价值。

上一节我们讲解了如何使用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)则会进入这个类测试的更详细页面.如下图

技术分享图片

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

技术分享图片

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

以上是关于Jenkins结合.net平台工具之ReportGenerator的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins结合.net平台工具之ReportGenerator

Jenkins结合.net平台工具之Nuget

Jenkins 持续集成平台构建之通过git提交代码

持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知

Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD

jenkins结合gitlable企业集成部署实战