make:test — テストを作成するコマンド

artisan

php artisan make:test

Laravel 12.x で テストクラス を生成する Artisan コマンド。
Feature テストと Unit テストを簡単に作成でき、Pest 用のテストも同時に生成可能です。


コマンド構文

php artisan make:test {name} [options]
  • {name}
    テストクラス名(名前空間や接尾辞を付けずに)。
    例: UserLoginTest, LoginTest

利用可能オプション

フラグ 省略形 説明 デフォルト
--unit -u tests/Unit にテストを生成 false
--pest -p Pest テスト(Pest用のテストファイル)を同時生成 false
--force -f 既存ファイルを上書き false
--cover -c @covers アノテーションを追加 false
--class -c 既存クラスのテストを生成 null

備考
--classmake:test ではなく make:class 系のコマンドで使用されるオプションです。
make:test で利用できるオプションは上記の4つです。


デフォルトの生成場所

フラグ 生成ディレクトリ
なし(デフォルト) tests/Feature/
--unit tests/Unit/

基本的な使い方

# Feature テストを生成
php artisan make:test UserLoginTest

# Unit テストを生成
php artisan make:test UserRepositoryTest --unit

# Pest 用のテストも同時に生成
php artisan make:test OrderServiceTest --pest

生成されるファイル例

tests/Feature/UserLoginTest.php

<?php

namespace Tests\Feature;

use Tests\TestCase;

class UserLoginTest extends TestCase
{
    /** @test */
    public function a_user_can_login()
    {
        $this->assertTrue(true);
    }
}

テスト実行

# PHPUnit で実行
vendor/bin/phpunit --filter UserLoginTest

# Pest で実行(Pest テストが生成された場合)
vendor/bin/pest

@covers アノテーションを付与

php artisan make:test OrderServiceTest --cover

生成例

/**
 * @covers \App\Services\OrderService
 */
class OrderServiceTest extends TestCase
{
    // …
}

これにより PHPUnit のコードカバレッジレポートで対象クラスを自動でリンクします。


よくあるミスと対処

ミス 対処
tests/Feature に Unit テストが生成される --unit フラグを付ける
既存ファイルが上書きされない --force フラグを付ける
Pest テストが作成されない --pest フラグを付ける
テストが自動で検出されない composer.jsonautoload-devtests/ が正しく設定されているか確認

参考リンク


レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする