私はこの問題を何日も調査してきましたが、多くの人がこの質問をしますが、明確で簡潔な答えは見つかりませんでした.
私は走っています:
- PHP ユニット: バージョン 3.7.21
- ワードプレス: バージョン 3.5.1
- OS: Ubuntu 11.10
- MySQL: バージョン 5.1.69-0ubuntu0.11.10.1
- PHP: バージョン 5.3.6-13ubuntu3.10
簡単に言うと、基本的な wordPress コアをコンピューターのディレクトリにダウンロードしました。pear と phpunit を正常にダウンロードしてインストールしました。正常に機能する単純なphpファイルに基本的なテストを記述して、phpunitをテストしました。私の問題は、wordpress サイト (コア WP ファイルを変更していない) で phpunit を実行するときです。
エラーが発生します:
「PHP 致命的なエラー: 行 779 の /< root_directory>/functions.php にある非メンバー オブジェクトでのメンバー関数 main() の呼び出し」。
このエラーは、次のコード セグメントに対応しています。
function wp( $query_vars = '' ) {
global $wp, $wp_query, $wp_the_query;
$wp->main( $query_vars ); // Line 779
if ( !isset($wp_the_query) )
$wp_the_query = $wp_query;
}
激しいインターネットクロールの後、多くの人がこの正確な行にエラーを持っていることがわかったので、環境設定やセットアッププロセスなど、このエラーをすべて引き起こした一般的なものがあることがわかりました.
私が読んで試したいくつかの解決策は、私にとってはうまくいきませんでした:
- 「index.php」ファイルで必要なファイルを変更します。
- "index.php" ファイルの頭の上に "load.php" の require を配置します。
- WordPressを再インストールする
- ブートストラップと phpunit 環境を変更します。
私は Web 開発者として 5 年間働いていますが、クライアントの 1 つで WordPress を使用したことはありません。このセットアップができたら、単体テストを書くのは簡単です。しかし、この問題の原因がわかりません。ガイド/チュートリアルまたは明確な説明へのリンクは大歓迎です。お時間をいただきありがとうございます。