測試過濾
當你執行 ./vendor/bin/pest
時,Pest 預設會執行完整的測試套件。正如你預期的,透過傳遞測試名稱作為第一個引數,即可執行個別測試。
1./vendor/bin/pest tests/Unit/TestExample.php
本章節將介紹更多由 Pest 過濾執行的測試的方法。如需完整的 CLI API 參考,請參閱我們的 CLI API 參考。
--bail
--bail
選項指示 Pest 在遇到第一個失敗或錯誤時停止執行測試套件。
1./vendor/bin/pest --bail
--dirty
--dirty
選項指示 Pest 根據 Git 僅執行具有未提交變更的測試。這通常在你為新功能開發一組測試,且不希望每次呼叫 Pest 時執行整個測試套件時很有用。
1./vendor/bin/pest --dirty
請注意,由於 Pest 的限制,使用 PHPUnit 語法撰寫的測試案例將始終被視為有變更。
--filter
使用 --filter
選項,可以執行與指定正規表示式模式相符的測試。--filter
選項允許你根據通常出現在測試輸出描述中任何資訊來過濾測試,例如檔案名稱、測試描述、資料集參數等。
1./vendor/bin/pest --filter "test description"
--group
你可以利用 --group
選項選擇性地執行屬於特定群組的測試。如需瞭解如何將測試或資料夾指派至群組,請參閱 群組測試文件。
1./vendor/bin/pest --group=integration,browser
--exclude-group
--exclude-group
選項可用於排除不執行特定測試群組。
1./vendor/bin/pest --exclude-group=integration,browser
--retry
如果一個測試先前失敗,你通常會希望依照測試套件安排執行優先順序來排列失敗的測試。在這種情況下,你可以使用 --retry
選項。
--retry
旗標依據優先順序重新排列您的測試套件,將之前失敗的測試優先執行。如果沒有先前的失敗,套件會以慣常的方式執行。但是,如果有之前的失敗,那些測試會首先執行。
注意:請記住,如果您的
phpunit.xml
檔案有兩個測試套件(通常是單位測試和功能測試),這個選項會先執行失敗的測試,依此為每個套件排序。這表示,有時您可能會看到整個 Unit 測試套件在 Pest 執行 Feature 測試套件之前先執行,而這是因為先執行先前失敗的測試優先順序較高。
1./vendor/bin/pest --retry
only()
如果您想要執行您的測試套件中的特定測試,可以實作only()
方法。
1test('sum', function () {2 $result = sum(1, 2);3 4 expect($result)->toBe(3);5})->only();
隨著程式碼庫的增長,使用過濾手動執行您的測試可能會變得乏味。這時候跳過測試就有其用。跳過測試是一項實用的功能,讓開發人員可以從測試套件中暫時排除特定的測試,而不用永久刪除它們:跳過測試 →