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

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく