3

我已经研究这个问题好几天了,虽然很多人问这个问题,但我从来没有找到一个清晰简洁的答案。

我在跑步:

  • PHP 单元:版本 3.7.21
  • WordPress:版本 3.5.1
  • 操作系统:Ubuntu 11.10
  • MySQL:版本 5.1.69-0ubuntu0.11.10.1
  • PHP:版本 5.3.6-13ubuntu3.10

长话短说,我已将基本的 wordPress 核心下载到计算机上的目录中。我已经成功下载并安装了 pear 和 phpunit。我通过对运行良好的简单 php 文件编写基本测试来测试 phpunit。我的问题是当我在 wordpress 网站上运行 phpunit 时(我没有更改其核心 WP 文件)。

我得到错误:

“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”的要求。
  • 重新安装 WordPress
  • 更改引导和 phpunit 环境。

我已经做了 5 年的网络开发人员,但我以前从未为我的一个客户使用过 WordPress。一旦我能完成这个设置,编写单元测试就会很容易;但我不知道是什么导致了这个问题。任何指向指南/教程或清晰解释的链接将不胜感激。感谢您的时间。

4

1 回答 1

1

有一个 WordPress 测试套件,您的问题表明您可能错过了:

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

请记住,在突出显示的情况下,WP 的设计方式并非使其或与之相关的任何东西都可以或应该进行测试。多年来,作案手法一直是在完全不进行测试的情况下提交代码。多年来,尽管速度缓慢,但它确实在改善。

相关问题:

自定义应用程序 Wordpress 开发的最佳实践是什么?

WordPress 插件:如何避免“紧耦合”?

于 2013-06-15T11:35:41.190 回答