類型覆蓋率

原始碼github.com/pestphp/pest-plugin-type-coverage

類型覆蓋率是衡量由類型宣告覆蓋的程式碼百分比的指標。這可以幫助開發人員找出程式碼中可能沒有完全輸入的部分,指出潛在的錯誤和其他問題。

要開始使用 Pest 的類型覆蓋率外掛,你需要透過 Composer 要求外掛。

1composer require pestphp/pest-plugin-type-coverage --dev

在要求外掛後,你可以利用 --type-coverage 選項來產生你的類型覆蓋率報告。

1./vendor/bin/pest --type-coverage

與程式碼覆蓋率不同,類型覆蓋率不需要你撰寫任何測試。相反地,它分析你的程式碼庫並產生類型覆蓋率報告。此報告會顯示一串檔案與其相對應的類型覆蓋率結果。

如果你的任何檔案缺少類型宣告,它們會以黃色突出顯示,並使用它們各自的行號和缺少的宣告類型顯示。

舉例來說,rt31 表示第 31 行函式的回傳類型缺少。另一方面,pa31 表示第 31 行函式的參數類型缺少。

忽略錯誤

有時,你可能想要忽略特定的錯誤或程式碼行。要這麼做,你可以使用 @pest-ignore-type 註解

1 protected $except = [ // @pest-ignore-type
2 // ...
3 ];
4}

最低閥值強制執行

就像程式碼覆蓋率一樣,類型覆蓋率也可以強制執行。要確保新增至你的應用程式的任何程式碼都是完全輸入的,你可以使用 --type-coverage--min 選項來定義類型覆蓋率結果的最低閥值。如果未達到指定閥值,Pest 會報告失敗。

1./vendor/bin/pest --type-coverage --min=100

不同的格式

此外,Pest 支援將類型覆蓋率報告至特定檔案

1./vendor/bin/pest --type-coverage --min=100 --type-coverage-json=my-report.json

在本章中,我們討論了 Pest 的類型覆蓋率外掛,以及如何使用它來衡量由類型宣告覆蓋的程式碼百分比。在下一章中,我們將說明如何透過變異測試來提升測試品質:變異測試 →