略過測試
在開發過程中,可能會遇到需要暫時停用測試的時候。建議使用 skip()
方法,而不是註解掉程式碼。
1it('has home', function () {2 //3})->skip();
執行測試時,Pest 會告知您任何已略過的測試。

您也可以提供略過測試的原因,Pest 會在執行測試時顯示原因。
1it('has home', function () {2 //3})->skip('temporarily unavailable');
此外,您可能想要根據特定條件略過測試。在這種情況下,您可以提供布林值作為 skip()
方法的第一個引數。此測試僅在布林值評估為 true
時才會略過。
1it('has home', function () {2 //3})->skip($condition == true, 'temporarily unavailable');
您可以將閉包作為 skip()
方法的第一個引數傳遞,以延後評估條件,直到您的測試案例的 beforeEach()
連接點執行完畢。
1it('has home', function () {2 //3})->skip(fn () => DB::getDriverName() !== 'mysql', 'db driver not supported');
如要在特定作業系統上略過測試,您可以使用 skipOnWindows()
、skipOnMac()
或 skipOnLinux()
。
1it('has home', function () {2 //3})->skipOnWindows(); // or skipOnMac() or skipOnLinux() ...
或者,您可以使用 onlyOnWindows()
、onlyOnMac()
或 onlyOnLinux()
來略過所有作業系統上的測試,只針對某一個作業系統執行測試。
1it('has home', function() {2 //3})->onlyOnWindows(); // or onlyOnMac() or onlyOnLinux() ...
有時候,您可能想要在特定 PHP 版本上略過測試。在這種情況下,您可以使用 skipOnPhp()
方法。
1it('has home', function () {2 //3})->skipOnPhp('>=8.0.0');
skipOnPhp()
方法的有效算子為 >
、>=
、<
和 <=
。
最後,您甚至可以在 beforeEach()
連接點中呼叫 skip()
方法,以方便略過整個測試檔案。
1beforeEach(function () {2 //3})->skip();
隨著程式碼庫擴充,建議考慮提升測試套件的速度。為協助您執行此操作,我們提供了最佳化測試套件的完整文件:最佳化測試