もうすぐ PHP 8.0対応のWordPress 5.6がリリースされる(2020年12月8日予定)ということで手持ちの公式プラグインを Travis-CIにてチェックし始めました(WP CLI 2.4.0 の wp scaffold plugin-tests プラグイン名 で吐き出すてs)。ところが、いつの間にか PHP 7.3以上については Travis-CIが PHPUnit 8.x(PHP8.0.0-devは PHPUnit 9.x)を使うため、PHPUnit 7.x までしか対応していない ため、現行のWordPressでは下図のようにエラーがでて動かなくなっていました。1年前ぐらいは問題なかったのですけどね。WordPress 5.6からは PHPUnit 8.x をサポートするそうです。この記事は WordPress 5.6がでる前(WordPress 5.6 RC2〜RC3)のときに検証した結果です。 WordPress 5.6も検証していますが、PHPUnit 8.x は未検証です。
- PHPUnitと PHPの対応表(PHPUnit)
PHP 8.0.0-devはうまくいかず
PHP 7.3/7.4 利用時に Travis CI に PHPUnit 7 を強制させる
PHPUnit 8.x対応の WordPress 5.6がでたら不要になるかもしれませんが、2020年12月1日現在は、WordPressが PHPUnit 7.x 以下しか対応しないため、やむを得ません。
変更するのは「.travis.xml」です。また composer.json がないと 「Composer could not find a composer.json file in XXX 」のようにエラーがでる場合があります。
したがって追加や変更点は
- .travis.xml の変更
- composer.json
- phpunit.xml.dist の test-sample.php の除外設定をコメントアウトする
(<!-<exclude>./tests/test-sample.php</exclude> -->)
- matrix キーは、jobs キーへ変更(matrixはjobsへのエイリアス)したので、今後は jobs キーを使うこと
- sudo: は廃止キーだから削除推奨
また、PHP 7.3, 7.4 については、Travis CIで失敗しても許容するように、allow_failures キーを設定しておきます。ここで指定しておけば失敗しても Travis CIのジョブとしては失敗とはみなされないということになります。
まず jobに PHP 5.6〜 7.4を追加します。 PHP 7.4については WordPress 5.6(リリース候補)も含めておきます。
付録:MAMPを使った PHPUnitテスト方法
検証環境
- macOS Big Sur (11.0.1)
- MAMP 5.7 (最新の6.2 は Apacheの80 ポート利用でコケるのでまだ使っていない)
- PHP 7.4.2
- zsh(シェル)
- プラグインテストの準備
- WordPressでテスト駆動開発(PHPUnit)〜インストール編 を参考に、wp scaffold plugin-tests でPHPUnitテスト環境を構築しておきます。
- svn をインストールしておきます(Big Surには標準搭載されていない)
- Xcodeには含まれなくなったため、Homebrew をインストールして、 brew install svn からインストールできます。
STEP 1. MAMPの phpや mysql等コマンドを優先する PATHを通す
STEP 2. wp scaffold plugin-tests が吐き出す bin/install-wp-tests.sh の変更
- https://github.com/kimipooh/view-shortcodes/blob/master/bin/install-wp-tests.sh
- mysqladmin: [Warning] Using a password on the command line interface can be insecure.
- mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA
- mysqladmin create $DB_NAME --user="$DB_USER" --password $EXTRA
こうすることで MAMPの初期設定(MySQLポート 8889、ユーザー、パスワードともに root)であれば、
STEP 3. テスト用 WordPress のインストール
bash bin/install-wp-tests.sh view-shortcodes root 'root' 127.0.0.1:8889 latest
というコマンドを叩くことで、WordPress最新版(latest)が、
/var/folders/_6/ユニークキー/T/wordpress/
STEP 4. PHPUnit7 のダウンロードと実行
- https://phar.phpunit.de/phpunit-7.phar
0 件のコメント:
コメントを投稿