插件集成测试

本指南演示如何在 Travis CI 和本地运行集成测试。脚手架使用WordPress Core“单元测试”,用于对WordPress Core进行单元测试。单元测试对于测试插件和主题也很有用,但如果以这种方式使用它们,它将这些测试变成“集成测试”——它们测试插件/主题和WordPress Core之间的集成。插件或主题的正确单元测试不会加载WordPress。

在Travis CI上运行测试

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

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

  • .travis.yml和文件phpunit.xml.dist``phpcs.ruleset.xml
  • tests文件夹

有关每个文件的功能的说明,请参阅文档。然后,您需要在文件夹中指定单元测试。tests/

在本地运行测试

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

我们将假设:

那么,让我们开始吧:

1. 安装 PHPUnit

要安装的PHPUnit版本取决于PHP和WordPress版本。
请参阅:PHPUnit兼容性和WordPress版本–使WordPress核心

2. 生成插件测试文件

wp scaffold plugin-tests my-plugin

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

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

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

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

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

  • wordpress_test是测试数据库的名称(所有数据都将被删除!)
  • root是 MySQL 用户名
  • ''是 MySQL 用户密码
  • localhost是 MySQL 服务器主机
  • latest是WordPress版本;也可能是,等等。3.7``3.6.2

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

4. 运行插件测试

phpunit

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

在Windows中集成WP单元测试

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

首先,要知道某些WP-CLI命令在Windows中不起作用,因此您需要使用Cygwin。Cygwin也是WordPress核心项目的首选

其次,该脚本不能直接在Windows中工作。Windows 10为Linux引入了Windows子系统,但旧版本需要额外的努力。Cygwin是首选,因为它默认运行bash脚本。bin/install-wp-tests.sh

第三,bash 安装脚本使用 ,这是 Windows 中默认不可用的 Linux 命令。,并且所有这些都可以作为单独的软件包安装在 Windows 中。which``cURL``svn``wget

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