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 オプション | 出力されるファイル |
---|---|
travis | Travis CI 向け (デフォルト) |
circle | Circle CI 向け |
gitlab | GitLab CI 向け |
bitbucket | Bitbucket 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.yml | Travis.CI でテストを行うための設定ファイル。 |
bin/install-wp-tests.sh | WordPress plugin のテスト環境構築処理が実装されています。.travis.yml から呼び出されます。 |
phpunit.xml.dist | PHPUnit 実行時の設定ファイル。 |
tests/bootstrap.php | PHPUnit 実行時に、テスト対象の plugin の PHP ファイルを require する処理が実装されています。phpunit.xml.dist の設定で、PHPUnit 実行時に自動的に呼び出されます。 |
tests/test-sample.php | テスト実装のサンプルです。このファイルは phpunit.xml.dist で exclude されているので、実行したい場合は phpunit.xml.dist を編集して <exclude>タグを取り除きます。 |