我已经研究这个问题好几天了,虽然很多人问这个问题,但我从来没有找到一个清晰简洁的答案。
我在跑步:
- 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。一旦我能完成这个设置,编写单元测试就会很容易;但我不知道是什么导致了这个问题。任何指向指南/教程或清晰解释的链接将不胜感激。感谢您的时间。