2026年9月24日
2026年9月24日
WordPressのPHP_Unit integrationテストを書く方法
はじめに
WordPressプラグインやテーマの開発において、コード品質を保つためにはテストが重要です。PHP_UnitはPHP向けの有名なユニットテストフレームワークで、WordPressでもその威力を活かすことができます。この記事では、WordPressプラグインやテーマでのPHP_Unitのintegrationテストの書き方と実行方法について詳しく紹介します。
症状・背景
このテーマが必要になる主な場面:
- 新しいプラグインやテーマを開発する際
- 既存のコードにバグが存在し、その修正を確認したいとき
- コードのリファクタリングを行う前にテストを確立したい場合
- プロジェクトの品質向上とメンテナンス性の確保を目指す時
手順・設定方法
ステップ1: WordPress環境を準備する
# WP-CLIを使ってWordPressをインストールします。
wp core download --version=6.2
# データベースを作成し、MySQLユーザに適切な権限を与えてください。
# wp-config.phpファイルを作成します。具体的には、データベースの詳細とWP saltsなどを設定してください。
ステップ2: PHP-Unitをインストールする
# Composerを使ってPHP-Unitをグローバルにインストールします。
composer global require phpunit/phpunit:^9.5
# WordPressプロジェクトディレクトリ内でphpunit.xml.distファイルを作成します。このファイルはテストスイートの設定を定義します。
ステップ3: WordPressプラグイン/テーマのテストクラスを作成する
# テストクラスを作成します。例えば、plugin_test.phpという名前で、指定したプラグインの機能をテストします。
<?php
use PHPUnit\Framework\TestCase;
class MyPluginTest extends TestCase {
public function testSomeFunctionality() {
// あなたのコードをテストするロジック
}
}
# テストクラスのパスとファイル名はphpunit.xml.distに設定してください。
ステップ4: テストを実行し、結果を確認する
# WordPressディレクトリ内でPHPUnitコマンドを使用してテストを実行します。
vendor/bin/phpunit --bootstrap wp-load.php tests/
注意事項
- <実践的な注意点1>: テストを実装する際は、テストが互いに依存しないように設計することが重要です。単一のテストケースが他のテストケースに影響を与えるようなことは避けましょう。
- <実践的な注意点2>: WordPressプラグインやテーマの開発では、テスト用のデータベーステーブルを作成したり削除したりするコードをテストクラス内で直接書くべきではありません。代わりに、wpdbオブジェクトを使用してデータベース操作を行うようにしましょう。
- <セキュリティ上の注意>: テストスイートが開発者以外のアクセスを許可しないよう、公開前のプロジェクト設定には十分な注意が必要です。
- <パフォーマンス/運用上の注意>: 適切なテストスイートはコード品質の向上に寄与しますが、過度なテスト実装はプロジェクトの開発速度を遅らせる可能性があります。適切なバランスを見つけることが重要です。
まとめ
1. テスト環境の準備: テスト実行のために必要なWordPressインストールとデータベース設定を行います。
2. PHP-Unitのセットアップ: WordPressプロジェクト内でPHPUnitが利用できるようにします。
3. テストクラスの作成: 開発しているプラグインやテーマの機能をテストするためのクラスを作ります。
4. テスト実行と結果確認: 上記で準備したテストスイートを実行し、テストの成功と失敗について確認します。
5. 注意事項の遵守: テスト開発では相互依存を避けるなど、いくつかの重要なガイドラインに従うことが求められます。
関連記事: