VCCWを使わずMacからWordPressのユニットテストを行う方法

WordPress 4.2 がリリースされましたので、拙作プラグインも最新版で動作テストしようと思いたちました。VCCW には WordPress 用の PHPUnit が簡単に使える環境が用意されているので、いつもそれをつかってテストしています。

で、この WordPress 用の PHPUnit というのが、テストを実行すると自動的にテスト用の WordPress を起動してそこでテストしてくれるというもので、僕は勝手に最新の WordPress でテストしてくれるものと思っていたのですが、確認したところ、僕のテスト環境の WordPress は4.0!

VCCW 開発者の@miya0001さんに確認したところ、スクリプトを走らせて自分でバージョンアップしなければならないとのこと。まぁそれはそれで良いかと思っていたのですが、話の流れの中で

というツイートが。知らなかったのですが、VCCW にログインしなくても Mac 上で WordPress 用の PHPUnit を実行できるようです。ということで、環境をつくってみました。

環境の準備

Mac 上で WordPress 用の PHPUnit を実行するには PHP、MySQL、PHPUnit、jq、wp-cli が必要となりますので、入っていない方はそれぞれインストールしてください。Mac だとだいたい brew でいけます。

//  PHP、MySQL、PHPUnit、jq のインストール
$ brew install php54 mysql jq phpunit

// wp-cli のインストール
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ php wp-cli.phar --info
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

インストールがすんだら、wp-cli に WordPress 用の PHPUnit を実行するための環境をババっと用意してくれるスクリプトが用意されているのでそれを実行すれば良いのですが、環境をリセットするのにはデータベース消したりも必要なので、そのあたりを一気にやってくれるスクリプトを@miya0001さんが用意してくださっているので、これを使わせてもらいましょう。で、このコマンドも毎回実行するのは面倒なので、短いコマンドで実行できるようにします。

# オリジナルのコマンド wpphpunit を登録
$ vi ~/.bash_profile

# 最後あたりに下記を記述
function wpphpunit() {
    curl -L https://raw.githubusercontent.com/miya0001/install-wp-test-env/master/install.sh | bash;
    phpunit;
}

# .bash_profile のリロード
$ source ~/.bash_profile

これで、wpphpunitとうつだけで、テスト用の WordPress 環境の構築と phpunit の実行が一括で実行できます。ただ、これは毎回やる必要はないので、通常は phpunit コマンドで良いかと思います。

# プラグインのディレクトリに移動
$ cd {テストしたいプラグインのディレクトリ}

# テスト環境のインストール・初期化をしたいとき
# 環境の準備 + phpunit を実行
$ wpphpunit

# phpunit だけを実行したいとき
$ phpunit
  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。