为什么不能PHPUnit UnitTest我的Wordpress网站

时间:2013-06-14 18:32:26

标签: wordpress unit-testing testing phpunit

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

我正在跑步:

  • PHP单位:版本3.7.21
  • WordPress:版本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网站上运行phpunit时(我没有更改核心WP文件)。

我收到错误:

  

“PHP致命错误:在非成员上调用成员函数main()   /中的对象第779行的root_directory> /functions.php“。

此错误对应于此代码段:

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
  • 更改boot-strap和phpunit环境。

我已经做了5年的网络开发人员,但我之前从未使用过WordPress给我的客户。一旦我能够得到这个设置,单元测试将很容易;但我不知道是什么导致了这个问题。任何指南/教程的链接或明确的解释将不胜感激。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

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

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

请记住,在突出显示的情况下,WP的设计方式不是它或与之相关的任何东西可以或应该被测试。多年来,操作方法一直是提交代码而根本没有测试。多年来,虽然进展缓慢,但它确实在改善。

相关问题:

What are the best practices of custom application Wordpress development?

WordPress Plugin: How do I avoid "tight coupling"?