Docker を使って WordPress plugin にテストのためのファイルを追加しよう

WordPress plugin の CI, TDD は、
WP-CLI を使ってテストに必要なファイルを追加することから始まります。
WP-CLI を動作させるための環境構築には時間がかかります。
この記事では Docker を利用して環境構築の手順をスキップします。

テストのためのファイル追加方法

手順

1. Docker Compose プロジェクトを Clone 、もしくはダウンロードします

環境構築をスキップするため Docker Compose を利用します。
こちらの GitHub のリポジトリーを利用します。
https://github.com/yukihiko-shinoda/docker-compose-init-phpunit-wordpress-plugin

$ git clone https://github.com/yukihiko-shinoda/docker-compose-init-phpunit-wordpress-plugin.git
2. 開発している WordPress plugin のディレクトリーを配置します

“plugins” ディレクトリーの中に
開発している WordPress plugin のディレクトリーを配置します。

docker-compose-init-phpunit-wordpress-plugin/
  plugins/
    your-plugin-directory
3. バックグラウンドでコンテナを起動します
$ cd docker-compose-init-phpunit-wordpress-plugin
$ docker-compose up -d

すると “database” と “wordpress” の 2 つのコンテナが起動します。
これで WP-CLI を実行する準備が整いました。

4. “wordpress” コンテナに入ります

WP-CLI は “wordpress” コンテナの中にインストールされており、
手順 2. で配置した WordPress plugin ディレクトリーも
コンテナにマウントされているので、
この後の手順はコンテナに入ってすすめます。

$ docker exec -it wordpress /bin/bash
5. WordPress を初期化します

WordPress を構築したとき、最初に
URL 、タイトル、管理ユーザー名、管理ユーザーメールアドレスを
設定したことを憶えていますか?
これを実行しないと WP-CLI で WordPress plugin に
テストのためのファイルを追加できません。

ここでは、 WP-CLI を使って適当なパラメーターを与えて初期化を行います。
このパラメーターは WordPress plugin へ追加されるファイルの内容に
影響を与えません。

$ wp --allow-root core install --url=localhost --title=temporary --admin_user=admin --admin_email=admin@localhost.com
6. テストのためのファイルを生成します
$ wp --allow-root scaffold plugin-tests (plugin ディレクトリー名)

上記のコマンドを実行すると、WordPress plugin のディレクトリー内に
テストのためのファイルが生成されます。

デフォルトでは Travis CI を利用する前提のファイルが生成されますが、
Travis CI 以外の CI サービスを利用したい場合は
コマンドのオプションで [–ci=<provider>] を指定することで
その他の CI サービス向けのファイルを生成できます。

provider オプション出力されるファイル
travisTravis CI 向け (デフォルト)
circleCircle CI 向け
gitlabGitLab CI 向け
bitbucketBitbucket Pipelines 向け

参考: wp scaffold plugin-tests | WordPress Developer Resources

ちなみに、Travis CI は利用対象の GitHub リポジトリーが public の場合、
無料で利用することができます。

以上でファイルの追加が完了しました。
コンテナから退出し、終了して大丈夫です。

$ exit
$ docker-compose down

そしてこの docker-compose-init-phpunit-wordpress-plugin は
もう使わないので、
WordPress plugin のディレクトリーを移動させた後、削除しても大丈夫です。

追加されたファイルについてのまとめ

2019/12/17 現在は以下のファイルが生成されます。

ファイル名概要
.phpcs.xml.distコーディング規約チェックの設定ファイル。
.travis.ymlTravis.CI でテストを行うための設定ファイル。
bin/install-wp-tests.shWordPress plugin のテスト環境構築処理が実装されています。.travis.yml から呼び出されます。
phpunit.xml.distPHPUnit 実行時の設定ファイル。
tests/bootstrap.phpPHPUnit 実行時に、テスト対象の plugin の PHP ファイルを require する処理が実装されています。phpunit.xml.dist の設定で、PHPUnit 実行時に自動的に呼び出されます。
tests/test-sample.phpテスト実装のサンプルです。このファイルは phpunit.xml.dist で exclude されているので、実行したい場合は phpunit.xml.dist を編集して <exclude>タグを取り除きます。
タイトルとURLをコピーしました