gpt4 book ai didi

wordpress - 为什么 PHPUnit 不能对我的 Wordpress 网站进行单元测试

转载 作者:行者123 更新时间:2023-11-28 20:00:19 26 4
gpt4 key购买 nike

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

我在运行:

  • 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 Fatal error: Call to a member function main() on a non-member object in /< root_directory>/functions.php on line 779".

此错误对应于此代码段:

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

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

最佳答案

有一个 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"?

关于wordpress - 为什么 PHPUnit 不能对我的 Wordpress 网站进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com