2022年4月17日日曜日

WordPressで単体テストをするには、シンボリックリンクを使う必要があるらしい。

WordPressで単体テストをしたい。

最近テストを書くのに開眼して、テストコードをとりあえず書きたくなりました。

WordPressのプラグインを作る上で、テストコードを導入したいと思い探していると、公式で以下の方法で試せばできると書いてありました。

  • wp-cliでテストコードの雛形を作成する
    wp scaffold plugin-tests "Plugin名"
    参考リンク
  • プラグインのディレクトリで./bin/install-wordpress-tests.shを実行する
  • phpunit をプラグインのディレクトリで実行する

いやー、かんたんに導入できるね。

現れるエラー

しかし、実行すると以下のエラーで悩まされる。

[17-Apr-2022 14:26:18 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at /tmp/wordpress-tests-lib/includes/bootstrap.php:258) in /tmp/wordpress/wp-load.php on line 64

Warning: Cannot modify header information - headers already sent by (output started at /tmp/wordpress-tests-lib/includes/bootstrap.php:258) in /tmp/wordpress/wp-load.php on line 64

PHPUnitを実行しているはずなのに、ヘッダたないというエラーが出て手づまりになる。

StackExchangeに救いの手が

/tmpに作成されたwordpressのwp-config.phpをテスト用に作ったwp-config.phpに差し替えればうまく動いた。

ln -s /tmp/wordpress-tests-lib/wp-tests-config.php /tmp/wordpress/wp-config.php
PHPUnit via WP-CLI: Warning: Cannot modify header information ... bootstrap.php:68

0 件のコメント:

コメントを投稿

PHPerKaigi2024に参加してきました!

3年連続でPHPerKaigiに参加させていただきました。  なぜかうちのBlogに2023の感想ブログが下書きで残っているので、今年は書ききることを目標にしたいと思います。 全体の感想 会場でたくさんの方とお話させていただきました。Xでよく見かける人やPHPerKaigiでは...