it-swarm-ja.com

ユニットテストWordpress

私はwordpress wordpress関数を使用するクラスを多数使用しており、それらのユニットテストを作成したいと思っています。私が見つけた問題は、phpunitがwordpress関数を認識せず、テストが機能しません。

私はテストクラスにindex.php、wp-load.phpを含めようとしましたが、それらが含まれていると、phpunitが機能せず、何もせずに「終了コード0」で終了します。エラーはPhpStormターミナルに表示されます。コマンドでコマンドを実行すると、コマンドは何も情報をスローせず、空白行のみをスローします。

Phpバージョン:7.3.3 PhpUnitバージョン:7.5.9 Wordpressバージョン:4.9.1

エラーの例は、コンストラクターに「add_action」を含むクラスをテストすることであり、エラーは、「未定義の関数add_action()の呼び出し」です。このテストを実行するためにどのファイルを含める必要があるのか​​、またはクラスを正しくテストする方法はわかりません。

1
Ocriver

WordPress PHPUnitを使用したコアセットアップ: https://make.wordpress.org/core/handbook/testing/automated-testing/phpunit/ をご覧ください。

独自にロールするのではなく、このプロセスを使用すると、WordPressに固有のブーストラッピング(およびその他のカスタマイズ)を活用できます。

Codex から:

phpunitが呼び出されると、テストスイートは、WordPressのデフォルトのインストールをセットアップするスクリプトを実行します。GUIインストールで取得したものと同様の構成を使用します。テストを実行する前に、次の手順を実行します。

  • WordPressがブートストラップされます(wp-settings.phpを含めることにより)。これは、WP bootstrap(wp_loadedを介して)全体の後にすべてのテストが実行されることを意味します。
  • デフォルトのコンテンツはすべて削除されます。これにはサンプルの投稿とページが含まれますが、デフォルトのユーザーや「未分類」のカテゴリは含まれません。

お役に立てば幸いです。

1
MikeNGarrett