WordPress 4.2 がリリースされましたので、拙作プラグインも最新版で動作テストしようと思いたちました。VCCW には WordPress 用の PHPUnit が簡単に使える環境が用意されているので、いつもそれをつかってテストしています。
で、この WordPress 用の PHPUnit というのが、テストを実行すると自動的にテスト用の WordPress を起動してそこでテストしてくれるというもので、僕は勝手に最新の WordPress でテストしてくれるものと思っていたのですが、確認したところ、僕のテスト環境の WordPress は4.0!
VCCW 開発者の@miya0001さんに確認したところ、スクリプトを走らせて自分でバージョンアップしなければならないとのこと。まぁそれはそれで良いかと思っていたのですが、話の流れの中で
@inc2734 つうか北島さんもMac側でやりなよ。笑
— Takayuki Miyauchi (@miya0001) April 24, 2015
というツイートが。知らなかったのですが、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