rask / wp-test-framework
从WordPress PHPUnit框架提取的库,用于插件和主题的集成测试
Requires
- php: >=7.1
This package is auto-updated.
Last update: 2024-09-16 07:41:01 UTC
README
WordPress核心PHPUnit测试框架的提取和库化版本,以帮助在WordPress插件和主题中编写集成测试。
测试框架从 https://develop.svn.wordpress.org/trunk/tests/phpunit/ 获取,存储在 src/phpunit 中(进行了少量修改,以使其作为Composer包更好地工作)。
需要时更新源代码,因此核心框架和提取的库版本之间可能存在细微差异。如果有需要合并的重大更改,请通知维护者。
安装
此库应作为您的插件或主题中的Composer依赖项安装
$ composer require --dev rask/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';
\rask\WpTestFramework\Framework::load();
然后您应该加载您的插件或主题。在相同的引导文件中,您可以执行以下操作
<?php
require_once './vendor/autoload.php';
\rask\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堆栈编写测试。
贡献
上游测试框架可能需要不时地镜像,因此如果需要刷新,请随时联系维护者。
提交代码是OK的,只要它符合此库的目的并且可以工作。文档也非常欢迎。
如果某些内容不符合预期,请务必提出问题。
其他注意事项
感谢WordPress团队提供的测试框架。
许可协议
由于源框架和WordPress通常使用GPLv2+,此库使用GPLv3+。请参阅 LICENSE.md。