1. miya0001

    Posted

    miya0001
Changes in title
+WordPressプラグインのユニットテスト用のWordPress環境をセットアップする
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,57 @@
+
+WordPressプラグインの開発にPHPUnitを導入するには、WP-CLIで以下のようなコマンドを実行すれば自動的にひな形をつくってくれます。
+
+```
+$ wp scaffold plugin <plugin-slug>
+```
+
+できあがるプラグインはこんな感じ。
+
+```
+├── .travis.yml
+├── bin
+│   └── install-wp-tests.sh
+├── oreore.php
+├── phpunit.xml
+├── readme.txt
+└── tests
+ ├── bootstrap.php
+ └── test-sample.php
+```
+
+でも意外とめんどくさいのが、これらのテストで使用されるWordPress環境の構築です。
+
+ためしに`phpunit`といきなり叩いてみましょう。
+
+```
+$ phpunit
+PHP Warning: require_once(/tmp/wordpress-tests-lib/includes/functions.php): failed to open stream: No such file or directory in /Users/miyauchi/www/dev.local/www/wordpress/wp-content/plugins/oreore/tests/bootstrap.php on line 6
+```
+
+WordPressがねえぞおらおらーという趣旨のエラーメッセージが出ます。
+
+WP-CLIが自動的に生成するPHPUnitは`/tmp`以下にWordPressがセットアップされていることを前提としていて、セットアップ用のスクリプトが`bin/install-wp-tests.sh`というファイル名で用意されています。
+
+基本的にはこのシェルスクリプトに引数を与えて叩けばいいのですが、頻繁につくったり捨てたりしないといけない環境なので、一度捨ててもっかい作り直すまでをだーって処理するためのシェルスクリプトを用意しました。
+
+https://github.com/miya0001/install-wp-test-env
+
+## 動作環境
+
+ローカル(Macを前提)に以下の環境がセットアップされていることが前提です。
+
+* phpunit
+* wp-cli
+* MySQLサーバー
+
+あと、MySQLサーバーのrootパスワードが設定されていないことが前提です。
+
+(あくまでもローカルのテスト環境です。外部から接続される環境は想定していませんからね!)
+
+## 使い方
+
+以下のコマンドを実行してください。
+
+```
+$ curl -L https://raw.githubusercontent.com/miya0001/install-wp-test-env/master/install.sh | bash
+```