unsatisfiedWordPress

Michael Uno

テスト環境再構築だけで相当な時間ロス。

PhpStorm の Codeception が動かない

独自でセットアップ

WordPress テストツールの PHPUnit のバージョンが 7.x までで Codeception 4.x と非互換

Codeception を PHPUnit 7.x を使用するようにカスタマイズ (phar が使えない -> Composer でセットアップ)

カスタム Codeception をパッケージ化

Postscripts
  • troubleshoot

    Codeception 4.0.2 を Composer でセットアップすると、 “Module * is not installed.” のエラーでビルトインのモジュールがインストールされてない。-> 手動で一つ一つ composer.json に追加。

  • bugtroubleshoot

    PHPUnit のバージョンを v7.x に落とし、テストを走らせると、Serialization of 'Closure' is not allowed というエラーを吐く。

    phpunit.xmlでグローバル変数のバックアップを無効にして回避できるらしいが、Codeception では設定できない。

  • 下位バージョンとの互換性を class_alias() などを駆使して保ちつつ、なんとかテストを正常に走らせるところまではこぎつけた。

    ただ、WordPress Tests Lib、Codeception, PHPUnit の変更によって、動作が変化するので、目を見張らせないといけない。ま、でも WordPress Tests Lib が PHPUnit 8 に対応してくれさえすれば、問題ないのだけれど。

    いやはや、まいる。

Add a Postscript

Your email address will not be published. Required fields are marked *