1. 程式人生 > >Jenkins結合.net平臺工具之ReportGenerator

Jenkins結合.net平臺工具之ReportGenerator

ins net xml文件 工具 ons 一個空格 IT pro 繼續

上一節我們講解了如何使用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