PHPUnitテストの導入方法メモ(WPは対象外)

2026.03.10

最近、PHPでクラスを使ったプログラムを書いたりする機会が増えたため、ユニットテストの導入を行った。

そこで、今回は実際にPHPユニットテストをサイトに導入したやり方をメモとして残しておく。

基本、この記事だけで完結するが、Wordpressの関数などを使う場合はさらなる設定が必要になるが、そうでない場合は続きの記事も読んでもらいたい。

今回使用するのはPHPUnitだ。

前提条件として、PCにComposerをインストールしておいてもらいたい。

① コマンドラインでテーマディレクトリへ移動

今回はWPディレクトリのテーマ内にて導入を行う。

繰り返しになるが、今回はWPの関数を使わない前提で構築していく。

「PowerShell / terminal」を開き、下記を入力

cd C:\Users\project\public\wp-content\themes\project-theme

② composer初期化

下記を入力し、ほぼ Enter連打でOK。

composer init

成功すると、「composer.json」が生成される。

③ PHPUnitインストール

下記を入力

composer require --dev phpunit/phpunit

インストール後、「vendor/」と「composer.lock」ファイルが生成される。

④ テストフォルダ作成

テーマ直下にtestsディレクトリを自身で作る

theme-project

│

├ vendor

├ tests

│   └ SampleTest.php

├ composer.json

⑤ テストファイル作成

テストとして動かすプログラムをSampleTest.phpとしてtestsディレクトリの中に作成する。

<?php

use PHPUnit\Framework\TestCase;

class SampleTest extends TestCase

{

    public function testExample()

    {

        $this->assertTrue(true);

    }

}

⑥ PHPUnit設定

テーマ直下に「phpunit.xml」を作成し、下記を入れる

<?xml version="1.0" encoding="UTF-8"?>

<phpunit bootstrap="vendor/autoload.php">

    <testsuites>

        <testsuite name="Theme Test Suite">

            <!-- ~~Test.php で終わるファイルだけテスト実行 -->

            <directory suffix="Test.php">tests</directory>

        </testsuite>

    </testsuites>

</phpunit>

⑦ テスト実行

テーマディレクトリで下記のコマンドを実行

vendor/bin/phpunit

成功すると、コマンドライン上に下記が表示される。

PHPUnit 10.x

.1 / 1 (100%)

OK (1 test, 1 assertion)

⑧ 最終構成

これでPHPUnitの作成は完了となり、最終的なファイル群は下記となる。

theme-project

│

├ composer.json

├ composer.lock

├ phpunit.xml

├ vendor

│

├ tests

   └ SampleTest.php

冒頭でも書いた通り、WPを使っていないサイトであればこれで動くはずだ。

しかし、ワードプレスサイトとなるとオリジナルの関数などがPHPUnitで処理できず、エラーとなってしまう。

次回はこれをさらにWordPress向けに改良し、WPクエリなどでも動かせる仕様にしていきたいと思う。

【続】PHPUnitテストを「WordPress Test Suite」を使ってWPでも動かす

PIC UP