カテゴリ: Laravel 更新日: 2026/03/06

Laravelでコマンド(artisan)のテストを行う方法を初心者向けにやさしく解説

Laravelでコマンド(artisan)のテストを行う方法
Laravelでコマンド(artisan)のテストを行う方法

先生と生徒の会話形式で理解しよう

生徒

「Laravelのartisanコマンドって、テストすることもできるんですか?」

先生

「できますよ。画面操作だけでなく、コマンドの動きもテストできます。」

生徒

「コマンドって黒い画面で動かすやつですよね?それも確認できるんですか?」

先生

「はい。文字の表示や処理結果まで、しっかりチェックできます。」

1. artisanコマンドとは何か

1. artisanコマンドとは何か
1. artisanコマンドとは何か

Laravelには、artisanと呼ばれるコマンド操作の仕組みがあります。これは、黒い画面に文字を打ち込んで、プログラムに指示を出す方法です。たとえば、ファイルを作ったり、データを整理したりといった作業を一気に実行できます。例えるなら、家電のリモコンのような存在で、決まったボタンを押すと決まった動きをしてくれます。

2. artisanコマンドもテストが必要な理由

2. artisanコマンドもテストが必要な理由
2. artisanコマンドもテストが必要な理由

コマンドは人の目に見えにくいため、失敗に気づきにくい部分です。しかし、定期的に動かす処理や大切なデータを扱う場合、間違いがあると大きな問題になります。そこでテストを行い、正しいメッセージが表示されるか、処理が最後まで実行されるかを確認します。これは、機械を動かす前に試運転をするのと同じ考え方です。

3. Laravelでコマンドテストを行う基本方法

3. Laravelでコマンドテストを行う基本方法
3. Laravelでコマンドテストを行う基本方法

Laravelでは、テストの中からartisanコマンドを実行できます。特別な準備はほとんど必要なく、テスト用のメソッドを使うだけです。まずは、コマンドが問題なく実行できるかを確認します。下の例では、sample:helloというコマンドを実行しています。


public function test_artisan_command_runs()
{
    $this->artisan('sample:hello')
         ->assertExitCode(0);
}

4. コマンドの表示メッセージをテストする

4. コマンドの表示メッセージをテストする
4. コマンドの表示メッセージをテストする

artisanコマンドは、実行すると文字を表示することが多いです。その表示内容が正しいかどうかもテストできます。これは、レシートに正しい金額が印字されているかを確認するようなものです。決まった文章が出ているかを見ることで、安心して使えるようになります。


public function test_artisan_command_output()
{
    $this->artisan('sample:hello')
         ->expectsOutput('こんにちは')
         ->assertExitCode(0);
}

5. コマンドに引数を渡してテストする

5. コマンドに引数を渡してテストする
5. コマンドに引数を渡してテストする

artisanコマンドには、追加の情報を渡せる場合があります。これを引数と呼びます。たとえば、名前を指定してあいさつを変えるような仕組みです。テストでは、その引数が正しく使われているかを確認できます。これは、注文内容を変えても正しい料理が出てくるかを確かめる作業に似ています。


public function test_artisan_command_with_argument()
{
    $this->artisan('sample:greet', ['name' => '太郎'])
         ->expectsOutput('こんにちは、太郎さん')
         ->assertExitCode(0);
}

6. 確認質問があるコマンドのテスト

6. 確認質問があるコマンドのテスト
6. 確認質問があるコマンドのテスト

artisanコマンドの中には、「本当に実行しますか?」と聞いてくるものがあります。これを確認質問と呼びます。テストでは、自動で「はい」と答えた場合の動きを確認できます。人がボタンを押さなくても、正しく進むかを確認できる点が特徴です。


public function test_artisan_command_with_confirmation()
{
    $this->artisan('sample:confirm')
         ->expectsConfirmation('実行しますか?', 'yes')
         ->assertExitCode(0);
}

7. コマンド実行後の状態を確認する

7. コマンド実行後の状態を確認する
7. コマンド実行後の状態を確認する

コマンドは、表示だけでなくデータの変更を行うこともあります。そのため、実行後の状態を確認することも大切です。たとえば、データが追加されたかどうかを見ることで、処理が成功したかを判断します。これは、掃除が終わったあとに部屋が本当にきれいになっているかを見るのと同じです。


public function test_artisan_command_database_change()
{
    $this->artisan('sample:create-user');

    $this->assertDatabaseHas('users', [
        'name' => 'テストユーザー',
    ]);
}

8. 初心者が意識したいartisanテストのポイント

8. 初心者が意識したいartisanテストのポイント
8. 初心者が意識したいartisanテストのポイント

artisanコマンドのテストは、難しく見えても基本は同じです。実行できるか、正しい表示が出るか、結果が正しいかを順番に確認します。目に見えない処理ほど、テストで支えることが大切です。コマンドを安心して使えるようになると、Laravelでの作業がぐっと楽になります。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelでコマンド(artisan)のテストを行う方法を初心者向けにやさしく解説
New2
CodeIgniter
CodeIgniterのCLI(Spark)とは?バッチ処理の基本概念を徹底解説
New3
Laravel
Laravelでコントローラを作成する方法(artisanコマンド)
New4
Symfony
Symfonyのコントローラでリダイレクトする方法を徹底解説!初心者にもやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelでモデルからデータを取得・保存・更新・削除する方法を完全ガイド!初心者でもわかるEloquent ORM入門
No.2
Java&Spring記事人気No2
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.3
Java&Spring記事人気No3
Laravel
LaravelでBasic認証を実装するミドルウェアの使い方!初心者向けガイド
No.4
Java&Spring記事人気No4
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.5
Java&Spring記事人気No5
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.6
Java&Spring記事人気No6
Symfony
SymfonyでTwigテンプレートを表示する方法を完全ガイド!初心者にもわかるHTMLとの違いや使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.8
Java&Spring記事人気No8
Symfony
Symfonyのコントローラでリダイレクトする方法を徹底解説!初心者にもやさしく解説