Naughty1029のブログ

エンジニアリングのこととか、日々の学びとか

PHPUnitの初期環境構築 簡易手順書

今回は、PHPUnitを用いたテスト環境のセットアップ手順を紹介してみようと思います。

前提条件

  • Composerがインストール済みであること
  • PHP開発環境が準備されていること

1. PHPUnitのインストール

composer require --dev phpunit/phpunit

--devオプションをつけることで、本番環境では必要ないテスト用ライブラリであることを示します。

テスト専用のライブラリは本番には不要ですので、require --devで開発時のみ参照する設定を行います。

2. PHPUnitバージョンの確認

./vendor/bin/phpunit --version

この手順を実行することで、正常にインストールが完了しているかを確かめることができます。

バージョンが表示されればOKです。

3. エイリアス設定

alias phpunit='./vendor/bin/phpunit'

この設定により、./vendor/bin/phpunitの代わりにphpunitと短く入力できるようになります。

エイリアスを利用することで、コマンドの入力を簡潔にし、作業効率を上げることが可能です。

ちなみに、エイリアス設定はターミナルやシェルの設定ファイル(.bashrcや.zshrcなど)に追記しておくと再起動後も継続して使えます。

4. phpunit.xml設定ファイルの作成

<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true"
         bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="project-tests">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
</phpunit>

このファイルでは、テストの基本設定を定義します。

特にbootstrapでvendor/autoload.phpを指定することで、Composerのオートロードを通して必要なクラスを読み込めるようになります。

またcolors="true"はテスト結果をカラー表示する設定で、見やすさが向上します。

5. ディレクトリ構造の準備

プロジェクト/
├── src/          # ソースコード
├── tests/        # テストコード
└── phpunit.xml   # PHPUnit設定ファイル

ここでは一般的なディレクトリ構成例を示しています。

src/には本番環境で使用するプログラムのソースコードを、tests/にはテスト用のコードを配置します。

また、プロジェクトのルートにphpunit.xmlを置き、先ほど設定した内容を管理します。

6. composer.jsonの更新

{
    "autoload": {
        "psr-4": { "App\\": "src/" }
    },
    "require-dev": {
        "phpunit/phpunit": "^11.5"
    }
}

autoloadセクションではPSR-4に沿った自動読み込みの設定を行います。
"": "src/"の部分は名前空間を使わない**場合の例です。

実際には"App\\": "src/"など、適切な名前空間を割り振るのが一般的です。

require-devにはPHPUnitのバージョンを指定しておきましょう。

7. オートロードファイルの生成

composer dump-autoload

このコマンドを実行すると、composer.jsonに基づいたオートロードファイルが再生成されます。

これで新たに追加したPSR-4設定などが反映されます。

8. サンプルテストファイルの作成

tests/SampleTest.php:

<?php
use PHPUnit\Framework\TestCase;

class SampleTest extends TestCase
{
    public function testTrueIsTrue()
    {
        $foo = true;
        $this->assertTrue($foo);
    }
}

ここでは単純なテストを一つ作っています。$fooをtrueに設定し、assertTrue()で「本当にtrueかどうか」を確認するだけのサンプルです。

テストは実行すると「テストが成功した」「失敗した」といった結果を返してくれるので、コードの品質管理に役立ちます。

9. テストの実行

phpunit

先ほどエイリアスを設定していれば、この短いコマンドでテストを実行できます。

テスト結果が表示され、問題なければ「OK」や「success」などのメッセージが表示されるでしょう。


参考URL

上記公式ドキュメントなども合わせて読むことで、さらに詳細な設定や高度な使い方が学べます。


まとめ

ここまでの手順を実行すれば、ローカル開発環境でPHPUnitを使ってテストができるようになります。
手動でプログラムをチェックするのとは違い、テストを自動化しておくことで修正後の動作確認が高速になり、より品質の高いコードを目指すことが可能です。

PHPUnitを導入しておくと、プロジェクトが大きくなっても安心してリファクタリングができますし、共同開発にも不可欠な仕組みになります。
ぜひこの手順を活用して、テストドリブンな開発スタイルを身につけてみてくださいね。


もし分からないところがあれば、コメント欄やSNSなどで質問していただければお手伝いできるかもしれません。
最後までお読みいただき、ありがとうございました。テストをしっかり行って、より安定したプロジェクト運営を行っていきましょう!