Code Coverage:為測試查漏補缺,讓開發如虎添翼

要想借助測試來推動開發,每次測試必須能正確覆蓋到相關的程式碼。初發佈於2019.3版本的Code Coverage預覽版包是一款能瀏覽程式碼總覽的工具,可協助使用者看到所有的內容。

Code Coverage包在與Test Runner結合使用時,可以顯示哪部分程式碼將被測試,測試是否成功。而在Unity 2020.1 beta的0.3.0預覽版中,我們新添了幾項改進。

本資源包屬於coverage API的客戶端,藉助API和C#反射將測試資料輸出為OpenCover格式檔案,然後使用ReportGenerator解析結果,以HTML文件的形式表示。

若想使用Code Coverage,首先需要在Package Manager(包管理器)中下載安裝Code Coverage預覽版。在2020.1 beta 8或以上版本中,需要在Edit > Project Settings > Package Manager中啟用預覽包才能開始使用。

接著,在Edit > Preferences > General中勾選Enable Code Coverage。啟用後編輯器的開銷會增加、效能會稍有降低,建議在不使用時禁用功能。勾選後包便能訪問Mono暴露的覆蓋資料的介面。接著,重啟Unity。

程式碼測試準備完畢!

單次測試完成時,包會生成一份HTML覆蓋報告,其中展示了總程式碼行覆蓋率和一行行的類列表,可作為參考。

Code Coverage報告

如何解讀結果呢?HTML報告中最為重要的數值是覆蓋行數,表示了測試中所覆蓋的程式碼量。比如,若數值為75%,則表明有四分之一的程式碼行沒有測試到。數值在計算時會考慮到哪些程式碼行可以被測試到。

Coverage History中的圖表(截圖中的紅線)表明了每次專案測試時的覆蓋率,覆蓋率越高越好。如果有所下跌,可以編寫更多的測試來提升覆蓋率。

Code Coverage目前支援EditMode(編輯模式)和PlayMode(執行模式)測試,可以跟蹤長期的覆蓋量,可與Test Runner一同使用。如果沒有任何測試,則可以使用Coverage Recording(覆蓋記錄)功能記錄覆蓋資料。

Code Coverage 教程

我們有專門的入門教程來幫助大家入門。即使從未寫過自動測試,也可以找出亟待測試的部分。教程時長約30分鐘,在安裝Code Coverage包後,可在Package Manager的Samples下尋得。

Samples資料夾下將有一個Worksheet表格。

Code Coverage工作表單

教程將介紹以下內容:

什麼是Code Coverage

如何安裝Code Coverage

開啟Code Coverage

game code: Shoot()函式介紹

生成PlayMode測試的Coverage覆蓋報告

如何新增Weapon武器測試來提升覆蓋率

如何為LaserController新增測試

如何清除覆蓋資料

如何使用Coverage Recording功能生成一份Coverage報告

版權宣告:本文源自 網路, 於,由 楠木軒 整理釋出,共 1259 字。

轉載請註明: Code Coverage:為測試查漏補缺,讓開發如虎添翼 - 楠木軒