今回はPHPUnitでテストを省略・スキップする方法をご紹介します。
少しでも参考になれば幸いです。
バージョン情報
- PHP:7.3.23
- Laravel:8.0
Sponsored Link
PHPUnitでテストを省略・スキップする方法を紹介
結論から言うと、PHPUnitでテストをスキップ・省略するには、markTestSkippedメソッドを使います。
実際の例で確認しましょう。
この例では、一番最後のテストにmarkTestSkippedを指定しています。
引数に指定してあるのは、スキップの理由を示すメッセージです。任意のメッセージを指定するようにしましょう。
<?php namespace Tests\Http\Controllers; use App\Http\Controllers\MainController; use App\Models\Expense; use App\Models\User; use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; class MainControllerTest extends TestCase { use DatabaseTransactions; private $user; public function setUp(): void { parent::setUp(); $this->user = User::factory()->create([ 'name' => 'laravelkun' ]); } /** @test */ public function indexはメイン画面を表示する() { $this->actingAs($this->user)->get('/main') ->assertViewIs('layouts.main'); } /** @test */ public function destroyで指定した支出項目を削除できる() { $this->markTestSkipped('不要な処理なのでスキップします'); $expense = Expense::factory()->create(); $this->actingAs($this->user)->delete(action([MainController::class, 'destroy'], [ 'param' => 'e', 'id' => $expense->id ])); $this->assertNull(Expense::find($expense->id)); } }
実際に実行してみます。
テストがスキップされていることが確認できました。