msaari/wp-test-framework

从 WordPress PHPUnit 框架提取的库,用于插件和主题的集成测试

0.3.0 2020-08-12 06:14 UTC

This package is auto-updated.

Last update: 2024-09-28 16:51:55 UTC


README

WordPress 核心PHPUnit测试框架的提取和库化版本,用于帮助在WordPress插件和主题中编写集成测试。

测试框架从 https://develop.svn.wordpress.org/trunk/tests/phpunit/ 获取,存储在 src/phpunit 中(进行了少量修改,以便更好地作为Composer包使用)。

需要时更新源代码,因此核心框架和此提取库版本之间可能存在细微差异。如果需要合并较大的更改,请通知维护者。

安装

此库应作为您的插件或主题中的Composer依赖项安装

$ composer require --dev msaari/wp-test-framework

WordPress 测试安装设置

您需要将 WordPress 实例下载到本地目录中,您的用户帐户可以从中加载和执行 PHP 代码

$ cd /home/you/wordpress
$ wp-cli core download

接下来,您不需要在那里安装 WP,而是需要一个 wp-tests-config.php 文件。它与常规的 wp-config.php 类似,但仅用于测试目的。

您可以在 https://develop.svn.wordpress.org/trunk/wp-tests-config-sample.php 找到示例配置。将内容复制到 WordPress 根目录(ABSPATH)并设置您的系统配置(数据库等)。

您的插件/主题可以(并且可能应该)位于 WordPress 测试安装之外。

为您的插件/主题设置 PHPUnit

在您的插件/主题目录内,您需要设置 PHPUnit。任何常规的 phpunit.xml 配置都应该工作。在您的 PHPUnit 引导文件中,您应该以以下方式加载 WordPress 测试框架

<?php

require_once './vendor/autoload.php';

\msaari\WpTestFramework\Framework::load();

然后,您应该加载您的插件或主题。在相同的引导文件中,您可以执行以下操作

<?php

require_once './vendor/autoload.php';

\msaari\WpTestFramework\Framework::load();

// Load your plugin

require_once dirname(__DIR__) . '/my-plugin.php';

// You can also add WP configuration here if you need to

现在,您的插件测试已引导以使用测试框架,您的测试用例现在可以作为使用整个 WordPress 堆栈的集成测试来执行。换句话说,您可以像运行 WordPress 核心测试一样运行测试!

运行您的测试

您需要定义一个环境变量,该变量包含一个文件系统路径(绝对或相对),指向您之前创建的 WordPress 测试安装。环境变量名称是

WP_TESTS_INSTALLATION

您可以使用以下方式使用环境变量与 PHPUnit

$ WP_TESTS_INSTALLATION=/home/you/wordpress phpunit

现在,您应该看到 WordPress 已加载并安装,您可以开始针对 WordPress 堆栈编写测试。

贡献

上游测试框架可能需要不时进行镜像,因此如果需要刷新,请随时联系维护者。

只要代码符合此库的目的并且工作正常,提交代码是可以的。文档也非常受欢迎。

如果某些事情没有按预期工作,请确保提出问题。

其他注意事项

感谢 WordPress 团队提供的测试框架。

许可

由于源框架和 WordPress 通常使用 GPLv2+,因此此库使用 GPLv3+。请参阅 LICENSE.md