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:為測試查漏補缺,讓開發如虎添翼 - 楠木軒