1. 獲取代碼覆寫率
上一篇文章里,我們在 Pipeline 中插入一個單元測驗并把所有單元測驗都通過作為 Pipeline 通過的硬性要求,除此以外,我們還可以獲取單元測驗的代碼覆寫率,用作衡量代碼質量的指標,代碼覆寫率沒有一個標準,各個專案有各個專案的造化,不一定更高的單元測驗覆寫率就代表專案的代碼質量高,不過通過觀察代碼覆寫率的趨勢也可以從另一個角度衡量專案的代碼質量,
在 Azure Devops 有不同的方式生成代碼覆寫率,例如使用 .NET Core CLI 編譯專案的話可以參考這篇文章生成代碼覆寫率:
【Azure DevOps系列】Azure DevOps生成代碼覆寫率 - HueiFeng - 博客園
而在前面的文章里我都是使用 Visual Studio Build 編譯并使用 Visual Studio Test 進行單元測驗,那么事情就簡單很多,只需在 VSTest 這個 task 的引數中加上 codeCoverageEnabled: true 即可,修改后的 YAML 如下:
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
codeCoverageEnabled: true
如果是圖形化的 Pipeline 編輯器,則需要在 VSTest 的配置中選中 Code coverage enabled:

之后,在 Pipeline 的運行結果中可以看到代碼覆寫率:

切換到 Code Coverage 頁面,點擊 Download code coverage results 可以下載代碼覆寫率的詳細結果:

這個代碼覆寫率的詳細結果可以在 Visual Studio 中打開查看:

2. 觀察代碼覆寫率的趨勢
之前說了,我們應該關心代碼覆寫率的趨勢,Azure Devops 也提供了這種擴展,做左邊選單選中 Overview -> Dashboard,導航到專案的儀表板,點擊 Edit 按鈕進入編輯模式,然后點擊右下角的 Extension Gallery 進入 marketplace,

搜索并進入 Code Coverage Protector 頁面,點擊 Get it free 按鈕,

選中我們的組織并安裝:

回到儀表板頁面并重繪,進入編輯模式,找到 Code Coverage,點擊 Add 按鈕:

Size 選擇一個 4 X 3,然后在 Build definition 選項選中用于單元測驗的 Pipeline,點擊 Save:

重復一次上面的操作,這次 Size 選擇 1 X 1 添加一個只有一格大小的圖表,最終結果如下,左邊的打的圖表顯示代碼覆寫率的趨勢,右邊小的圖表顯示當前代碼覆寫率:

可以看到這個專案最近幾次提交的代碼覆寫率明顯下降了,說明這幾次提交都沒做好單元測驗,
3. 最后
關于Visual Studio 測驗的更多內容,可以參考以下檔案:
Visual Studio 測驗任務 - Azure Pipelines Microsoft Docs
Visual Studio 生成和發布任務 - Azure Pipelines Microsoft Docs
如使用 .NET Core CLI 編譯專案的話可以參考以下文章:
【Azure DevOps系列】Azure DevOps生成代碼覆寫率 - HueiFeng - 博客園
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/273952.html
標籤:.NET技术
