WP-CLI 命令行手册

title: "插件集成测试" post_status: publish comment_status: open taxonomy: category: - wp-cli-handbook post_tag: - How To - Repos - Data


插件集成测试

本指南演示如何在 Travis CI 和本地运行集成测试。脚手架使用 WordPress 核心的"单元测试"来对 WordPress 核心进行单元测试。单元测试同样适用于测试插件和主题,但若以此方式使用,这些测试将转变为"集成测试"——它们测试插件/主题与 WordPress 核心之间的集成。针对插件或主题的适当单元测试不应加载 WordPress。

在 Travis CI 上运行测试

如果您将插件托管在 GitHub 上并启用 Travis CI,那么每次提交到插件后,测试都会自动运行。

要启用此功能,您只需从 WP-CLI 示例插件 复制并编辑以下文件:

请参阅文档以了解 每个文件的作用说明。然后,您需要在 tests/ 文件夹中指定您的单元测试。

本地运行测试

在开发过程中本地运行测试是有益的,因为这比提交更改并等待 Travis CI 运行测试更快。

我们假设:

那么,让我们开始吧:

1. 安装 PHPUnit

需要安装的 PHPUnit 版本取决于 PHP 和 WordPress 的版本。 请参阅:PHPUnit 兼容性与 WordPress 版本 – Make WordPress Core

2. 生成插件测试文件

bash wp scaffold plugin-tests my-plugin

此命令将生成运行测试所需的所有文件,包括一个 .travis.yml 文件。

3. 在本地初始化测试环境

cd 进入插件目录并运行安装脚本(你需要已安装 wget)。

bash bash bin/install-wp-tests.sh wordpress_test root '' localhost latest

安装脚本首先会在 /tmp 目录(默认)中安装一份 WordPress 副本以及 WordPress 单元测试工具。然后它会创建一个用于运行测试的数据库。传递给 install-wp-tests.sh 的参数用于设置测试数据库。

注意:此脚本可以多次运行而不会出错,但它不会覆盖先前已存在的文件。因此,如果你的数据库凭据更改,或者你想切换到不同的 MySQL 实例,仅重新运行脚本是不够的。你需要手动编辑安装在 /tmp 目录中的 wp-config.php 文件。

4. 运行插件测试

phpunit

如果在运行安装脚本或 PHPUnit 时遇到问题,请查看支持部分以获取帮助和常见问题的解答。

在 Windows 中集成 WP 单元测试

尝试在 Windows 中为您的项目设置单元测试时遇到困难了吗?

首先,要知道一些 WP-CLI 命令在 Windows 中无法工作,因此您需要使用 Cygwin。Cygwin 也是WordPress 核心项目推荐的工具

其次,bin/install-wp-tests.sh 脚本无法直接在 Windows 中运行。Windows 10 引入了 Windows Subsystem for Linux,但旧版本需要额外努力。推荐使用 Cygwin,因为它默认运行 bash 脚本。

第三,bash 安装脚本使用了 which 命令,这是一个在 Windows 中默认不可用的 Linux 命令。cURLsvnwget 都可以在 Windows 中作为单独的软件包安装。

最后,有时 bash 脚本会因为使用临时文件夹的方式而无法构建 WordPress。如果失败,您可以手动将 WordPress 安装到可写目录,然后手动创建 wp-tests-config.php