iT邦幫忙

2021 iThome 鐵人賽

DAY 23
1
DevOps

DevOps 萌新的 TeamCity 極速上手寶典系列 第 23

第二十三天:在 TeamCity 上產生覆蓋率報告

昨天介紹了測試覆蓋率的概念,也在 IntelliJ IDEA 裡將 ShoppingCart 類別的測試覆蓋率實際算出來給讀者們看。不過實際在團隊合作上,覆蓋率報告通常是由 CI 主機自動產生,給技術主管定期檢閱用。所以今天我們就要設定 TeamCity 自動在每次執行建置時一併產生覆蓋率報告。

設定 Build Step 產生覆蓋率報告

TeamCity 內建就支援 JVM 生態系的覆蓋率報告工具,因此我們什麼 Plugin 都不用裝,直接在對應的 Build Step 上增加設定即可。首先打開專案的 Build Steps 設定,修改第 4 步 Build 的動作。

在 Build Step 設定的下方有一個 Code Coverage 的區塊,把 Choose coverage runner 從 No coverage 改成 IntelliJ IDEA,而 Classes to instrument 則輸入 io.kraftsman.*,表示只要是在 io.kraftsman 這個 Package 底下的所有 Class 都要產生覆蓋率報告,完成後按 Save 儲存。

設定完成後按右上角的 Run 按鈕,實際跑一次建置讓覆蓋率報告產生出來。

觀看覆蓋率報告

建置動作完成後,進到該次 Build 詳細頁面,我們會發現中間多了一個 Code Coverage 的頁籤,進入該頁籤就可以看到 TeamCity 把覆蓋率報告直接顯示在頁面上,而不需要將產生的報告網頁另外上傳到其他主機上,非常方便!

從畫面的截圖可以看到,TeamCity 的覆蓋率報告跟我們在 IntelliJ IDEA 上看到的內容一樣,都可以取得覆蓋率數值,也可以看到實際上程式碼的哪些行有被測試到。這些資訊都可以協助我們開發人員了解現有程式碼庫裡的各項指標。

小結

今天看完 TeamCity 的覆蓋率報告設定,會不會覺得太輕鬆了呢?果然搭載跟 IntelliJ IDEA 相同的覆蓋率引擎就是不一樣,不需要寫複雜的設定檔,介面上點點按按就搞定,身為寫 Kotlin 的開發者真是太幸褔啦!

不過雖然 TeamCity 產生覆蓋率報告很簡單,但對於技術主管來說,看覆蓋率報告背後的目的,其實是想知道程式碼庫的狀態及趨勢。所以若是 TeamCity 能在覆蓋率數值降低時通知我們是不是更方便呢?明天,我們就來探索一下 TeamCity 在 Failure Conditions 上的功能!

參考資料


上一篇
第二十二天:為測試產生覆蓋率報告
下一篇
第二十四天:使用 TeamCity 監看覆蓋率變化
系列文
DevOps 萌新的 TeamCity 極速上手寶典31

尚未有邦友留言

立即登入留言