2026年7月26日

2026年7月26日

WordPressのユニットテストをPHPUnitで書く方法

はじめに

ユニットテストは、ソフトウェア開発において欠かせないプロセスです。特にWordPressプラグインやテーマの開発では、コードの品質を高め、バグを早期に発見するための重要なツールとなります。PHPUnitはPHP用の最も一般的なユニットテストフレームワークで、PHPアプリケーションにおけるユニットテスト自動化に最適です。この記事では、WordPressプラグインやテーマ開発においてPHPUnitをどのように使用してユニットテストを書くかを解説します。

症状・背景

  • WordPressプラグインやテーマの機能が意図した通りに動作しない場合
  • 新しいコードを追加し、既存のコードとの互換性を確認したい場合
  • バージョンアップ時に既存のテストケースと互換性があるか確認する必要がある場合
  • 開発者チーム内で品質管理の一環としてユニットテストを自動化したい場合

手順・設定方法

ステップ1: WordPressプロジェクトにPHPUnitをインストールする

# Composerを使用してPHPUnitをプロジェクトディレクトリへインストールします。
composer require --dev phpunit/phpunit

# プロジェクトのPHPUnitセットアップファイルを作成します。
php vendor/bin/phpunit --generate-test-skeleton src/MyPlugin.php test/

ステップ2: テスト用クラスとテストメソッドを定義する

# WordPressプラグインまたはテーマ内の関数やクラスに対して、PHPUnitのテストクラスを作成します。
class MyPluginTest extends \WP_Unit_TEST_Case {
    public function test_my_plugin_function() {
        $result = my_plugin_function();
        $this->assertEquals('expected_value', $result);
    }
}

ステップ3: WordPressのユニットテスト環境を構築する

# wp-tests-config.phpファイルを作成し、WordPressおよびPHPUnitの設定を行います。
touch tests/phpunit/wp-tests-config.php

# サンプル設定を含むwp-tests-config-sample.phpをテンプレートとして使用します。
cp tests/phpunit/wp-tests-config-sample.php tests/phpunit/wp-tests-config.php

ステップ4: テストスイートを実行する

# WordPressのテスト環境を準備し、PHPUnitテストを実行します。
php vendor/bin/phpunit --configuration=tests/phpunit/

注意事項

  • プラグインやテーマのユニットテストは、開発段階だけでなく、リリース後も定期的に実施することが重要です。
  • テストコードは本番コードと同じように保守管理が必要であり、更新や削除を適切に行うことが求められます。
  • セキュリティ上の注意点として、公開前のテストコードにはプラグインやテーマの脆弱性情報を含めないよう留意してください。
  • パフォーマンス面では、大量のユニットテストが存在する場合、効率的な実行方法(並列処理など)を検討することが重要です。

まとめ

1. PHPUnitインストール: WordPressプロジェクトにPHPUnitをインストールし、開発環境へ統合します。

2. テストクラス定義: プラグインやテーマ内の関数とクラスに対するPHPUnitのテストクラスを作成します。

3. テスト環境構築: テスト用のWordPressデータベースおよびPHPUnit設定ファイルを準備します。

4. テスト実行: PHPUnitを使用して、WordPressプラグインまたはテーマのユニットテストを自動化します。

5. 保守管理: 定期的なテストコードの更新と削除を行い、開発プロセス全体で品質管理を行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ