測試過濾

當你執行 ./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();

隨著程式碼庫的增長,使用過濾手動執行您的測試可能會變得乏味。這時候跳過測試就有其用。跳過測試是一項實用的功能,讓開發人員可以從測試套件中暫時排除特定的測試,而不用永久刪除它們:跳過測試 →