カテゴリ: 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
Symfony
Symfonyのルーティング構成の基本を完全解説!初心者向けにYAML・PHP・アノテーション方式をやさしく紹介
New2
Laravel
Laravelのルートグループの使い方!初心者でもわかるprefixやミドルウェアの設定方法
New3
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
New4
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPのif文の使い方を完全ガイド!初心者でもわかる条件分岐の基本
No.2
Java&Spring記事人気No2
PHP
PHPのswitch文の使い方!多くの条件分岐をスッキリ書く方法と注意点
No.3
Java&Spring記事人気No3
Symfony
Symfonyで翻訳(i18n)機能を使う方法を解説!初心者にもわかる国際化対応の基本
No.4
Java&Spring記事人気No4
PHP
PHPで文字列を結合する方法!ドット演算子と代入演算子の使い方を徹底解説
No.5
Java&Spring記事人気No5
CodeIgniter
CodeIgniterルーティングを完全攻略!正規表現でURLを自由自在に操る方法
No.6
Java&Spring記事人気No6
CodeIgniter
CodeIgniter(コードイグナイター)入門!どんな開発案件に向いている?利用シーン別解説
No.7
Java&Spring記事人気No7
Laravel
LaravelのAPIルーティングを設定する方法!初心者でもわかるapi.phpの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelのview()関数の使い方を完全ガイド!初心者でもわかるBladeテンプレート表示と画面作成