質問: $wp_query; } いくつかの激しいインターネットクロールの後、私は多くの人々がこの正確な行にエラーを持っているのを見つけたので、環境設定やセットアッププロセスのような一般的なものがあることを知っています。私が持っているいくつかの解決策 読んで試した それは私のために働かなかった: "index.php"ファイルで必要なファイルを変更してください。 あなたの "index.php"ファイルの頭の上に "load.php"が必要です。 wordpressを再インストール ブートストラップとphpunit環境を変更してください。 私は5年間web開発者でしたが、私はクライアントの1人にwordpressを使用したことがありません。この設定を書くことができれば、単体テストの作成は簡単になります。しかし、私は何がこの問題を引き起こしているのかわかりません。ガイド/チュートリアルまたは明確な説明へのリンクは大歓迎です。お時間をいただきありがとうございます。--edit--私が実行しているテストファイルは次のとおりです。<?php //include phpunit require_once('phpunit/autoload.php'); //include the code to be tested require_once('../index.php'); // extend the phpunit class class stacktest extends phpunit_framework_testcase { public function testone(){ $this->asserttrue(true); $this->assertequals(2,2); $this->asserttrue(1<3); } } ?> 私はwordpress固有の機能テストを使用しませんでした。私は私のwordpressサイトのホームページにアクセスしないとうまくいく基本的なテストを実行しましたが、そうすると失敗しました。また別のメモ。設定ファイルとデータベースを正しく設定しました。このサイトは完璧に機能しています。phpunitテストではwebサイトファイルを正常に実行できません。
回答: wordpressの単体テストは難しいことです。ライブデータベースなどでコードをテストする必要がある場合は、 公式のwordpressテストスイート を使用することをお勧めします。私は そのメソッドを使ったプラグインのために/ /で単体テストを実行したことがあります それはきれいではなく、かなり信頼できませんでした。あなたがそのようにそれをする必要があるなら、けれども、私は個人的に公式のテストスイート以外でそれをすることを考えないでしょう。たくさんの情報があります コアmake blogの公式リポジトリにあります 。テストスイートのブートストラップファイルで、上書きする必要があるオプションを設定する必要があります。通常、これはアクティブなプラグインになるでしょう(だからあなたのプラグインをテストすることができます):$globals['wp_tests_options'] = array( 'active_plugins' => array( 'plugin-folder/plugin-file.php' ), // relative to wp plugin directory ); その後、コアテストスイートのincludes/bootstrap.phpファイルを含める必要があります。それが終わったら、あなたのテストは "期待通り"に実行されるべきです。しかし私の経験では、データベースとすべてのwordpressコードがあなたのテストに非常に多くの隠れた依存関係と状態を導入するので、そのような種類のテストは期待通りには実行されません。そのため、私はwordpress apiをモックして、それらすべての依存関係とすべてのその状態なしでテストを実行することを好みます。それをするために、私は wp_mock を使います。それはあなたがきめ細かい制御でwordpress環境をシミュレートすることを可能にします。たとえば、'the_content'にフィルタを追加してからthe_content()を呼び出す必要がある関数がある場合は、次のwp_mockのコードを使用してそれをテストできます。wp_mock::expectfilteradded( 'the_content', 'some_callback_you_expect', 10, 2 ); wp_mock::wpfunction( 'the_content', array( 'times' => 1, 'args' => array(), ) ); your_function(); wp_mockで説明されている期待値が満たされていないと、例外がスローされ、テストは失敗します。