略過測試

在開發過程中,可能會遇到需要暫時停用測試的時候。建議使用 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();

隨著程式碼庫擴充,建議考慮提升測試套件的速度。為協助您執行此操作,我們提供了最佳化測試套件的完整文件:最佳化測試