3

私はこの問題を何日も調査してきましたが、多くの人がこの質問をしますが、明確で簡潔な答えは見つかりませんでした.

私は走っています:

  • 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 を使用したことはありません。このセットアップができたら、単体テストを書くのは簡単です。しかし、この問題の原因がわかりません。ガイド/チュートリアルまたは明確な説明へのリンクは大歓迎です。お時間をいただきありがとうございます。

4

1 に答える 1

1

WordPress テスト スイートがあります。あなたの質問は、見逃している可能性があることを示唆しています。

http://make.wordpress.org/core/handbook/automated-testing/

それが強調されていることを念頭に置いて、WPはそれまたはそれに関連するものをテストできる、またはテストすることになっているような方法で設計されていないことに注意してください. 何年もの間、テストをまったく行わずにコードをコミットするという手口がありましたペースはゆっくりではありますが、年々改善されていることは確かです。

関連する質問:

カスタム アプリケーションの Wordpress 開発のベスト プラクティスは何ですか?

WordPress プラグイン: 「密結合」を回避するにはどうすればよいですか?

于 2013-06-15T11:35:41.190 に答える