プラグイン

このセクションでは、公式およびコミュニティが開発した、推奨するプラグインについて説明します。プラグインは主に、名前空間付き関数、コンソールコマンド、カスタム期待値、および追加のコマンドラインオプションを提供して、デフォルトのPestエクスペリエンスを拡張します。

プラグイン開発者の方は、Pestプラグインの作成方法の詳細については、プラグイン作成に関するドキュメントを参照してください。

以下のプラグインはPestチームによって保守されています。


Faker

ソースコード: github.com/pestphp/pest-plugin-faker

PestのFakerプラグインの使用を開始するには、Composer経由でプラグインをrequireする必要があります。

1composer require pestphp/pest-plugin-faker --dev

プラグインをインストール後、名前空間付きのfake関数を使用して、テスト用の偽のデータを作成できます。

1use function Pest\Faker\fake;
2 
3it('generates a name', function () {
4 $name = fake()->name; // random name...
5 
6 //
7});

関数にロケールを提供することで、fake()関数で使用する「ロケール」を指定することもできます。

1use function Pest\Faker\fake;
2 
3it('generates a portuguese name', function () {
4 $name = fake('pt_PT')->name; // Nuno Maduro
5 
6 //
7});

APIに関する包括的な詳細を含むFakerの詳細については、公式ドキュメントを参照してください。


Laravel

ソースコード: github.com/pestphp/pest-plugin-laravel

PestのLaravelプラグインの使用を開始するには、Composer経由でこのプラグインをrequireする必要があります。

1composer require pestphp/pest-plugin-laravel --dev

このプラグインは、デフォルトのPestインストールに追加のArtisanコマンドと関数を追加します。たとえば、tests/Featureディレクトリに新しいテストを作成するには、pest:test Artisanコマンドを使用できるようになりました。

1php artisan pest:test UsersTest

テストをtests/Unitディレクトリに配置するには、テスト作成時に--unitオプションを指定できます。

1php artisan pest:test UsersTest --unit

pest:dataset Artisanコマンドを実行すると、tests/Datasetsディレクトリに新しいデータセットが作成されます。

1php artisan pest:dataset Emails

ご存じのとおり、Laravelはフィーチャテストで利用できるさまざまなアサーションを提供しています。PestのLaravelプラグインを使用すると、通常どおりこれらのアサーションすべてにアクセスできます。

1it('has a welcome page', function () {
2 $this->get('/')->assertStatus(200);
3});

さらに、このプラグインの助けを借りて、actingAsgetpostdeleteなどの名前空間付き関数を使用する際に$this変数をバイパスすることができます。

1use function Pest\Laravel\{get};
2 
3it('has a welcome page', function () {
4 get('/')->assertStatus(200);
5 // same as $this->get('/')...
6});

この便利な機能を別の例で説明するために、認証されたユーザーが制限されたダッシュボードページにアクセスするテストを作成できます。

1use App\Models\User;
2use function Pest\Laravel\{actingAs};
3 
4test('authenticated user can access the dashboard', function () {
5 $user = User::factory()->create();
6 
7 actingAs($user)->get('/dashboard')
8 ->assertStatus(200);
9});

ご期待のとおり、以前は$this->経由でアクセスできたすべてのアサーションは、名前空間関数として使用できます。

1use function Pest\Laravel\{actingAs, get, post, delete, ...};

Laravelウェブサイトで完全なテストドキュメントを見つけることができます:laravel.com/docs/11.x/testing.


Livewire

ソースコード: github.com/pestphp/pest-plugin-livewire

PestのLivewireプラグインをインストールするには、Composer経由でプラグインをrequireする必要があります。

1composer require pestphp/pest-plugin-livewire --dev

プラグインをインストール後、名前空間付きのlivewire関数を使用して、Livewireコンポーネントにアクセスできます。

1use function Pest\Livewire\livewire;
2 
3it('can be incremented', function () {
4 livewire(Counter::class)
5 ->call('increment')
6 ->assertSee(1);
7});
8 
9it('can be decremented', function () {
10 livewire(Counter::class)
11 ->call('decrement')
12 ->assertSee(-1);
13});

Watch

ソースコード: github.com/pestphp/pest-plugin-watch

Pestの「watch」プラグインをインストールするには、Composer経由でプラグインをrequireする必要があります。

1composer require pestphp/pest-plugin-watch --dev

fswatchもインストールして、ファイルの変更をPestが監視できるようにしてください。

プラグインとfswatchの両方がインストールされると、Pest実行時に--watchオプションを使用できるようになります。このオプションは、アプリケーションを監視し、指定されたディレクトリのリスト内のファイルが変更されたときにテストを自動的に再実行するようにPestに指示します。

1pest --watch

デフォルトでは、プラグインは以下のディレクトリを監視します。

1tests/
2app/
3src/

監視対象ディレクトリをカスタマイズするには、ディレクトリのコンマ区切りのリスト(アプリケーションルートを基準とする)を--watchフラグに渡します。

1pest --watch=app,routes,tests

このセクションでは、プラグインがPestエクスペリエンスをどのように向上させるかを見てきました。次は、Pestを使用してチームのタスクと責任を管理する方法を見てみましょう:チーム管理