valu/wp-testing-tools

WordPress 测试工具

v0.6.0 2020-05-11 04:25 UTC

README

WordPress 测试,让每个人都能做到!🤗

测试 WordPress 插件很麻烦。wp-browser 项目使这成为可能,但它需要使用一个运行的 WordPress 安装。不幸的是,设置一个很费劲,这就是为什么许多特别是较小的插件完全省略了测试。所以这个项目的谦逊使命是消除这个障碍,这样就没有借口不编写 WordPress 插件的测试了!💪

本项目包含以下组件

  • 一个 Composer 可安装脚本(wp-install),用于将 WordPress 安装到 Docker 容器、GitHub Actions 或其他任何地方。
  • 可重用的 Docker 环境,用于本地测试和调试 xdebug。
  • GitHub Action 工作流程,用于持续集成。
  • 如何设置所有这些的示例插件。

使用此设置的项目

开始

对于新项目,您只需复制 plugin/ 目录下的所有文件,并将“example”字符串重命名。

对于现有项目,您可以使用 composer 安装此工具。

composer require --dev valu/wp-testing-tools
# You'll want the wp-browser too
composer require --dev lucatume/wp-browser

安装后,您可以使用以下命令将测试文件复制到您的插件中

./vendor/bin/wptt-configure

插件文件

示例插件位于 plugin/ 目录下。让我们逐个文件查看并解释每个文件的目的。

composer.json

这是主要的 composer 文件,它使您的插件可以通过 composer 进行安装。在这里定义您插件的任何库依赖项,但不要添加其他插件,因为您的插件用户可能希望以其他方式安装它们。

在这里,我们在 "require-dev" 下将此包定义为开发依赖项,使用 "valu/wp-testing-tools": "^0.4.0"

但最有趣的部分是 "scripts" 下的 "wp-install" 脚本

wp-install --full --wp-composer-file composer.wp-install.json --env-file .env

这个 wp-install 工具是由此包提供的,它实际上使用 wp-cli 进行 WordPress 安装。

它接受几个参数

  • --full:进行完整安装以进行功能测试和验收测试。如果只进行 wpunit 测试,则可以省略此参数。
  • --wp-composer-file:安装 WordPress 时使用的 composer.json 文件
  • --env-file:使用的 .env 文件
  • --wp-composer-file--env-file 参数是可选的,示例只是显示了默认值
  • 有关更多信息,请参阅 --help源代码

composer.wp.install.json

由于我们无法将 WP 插件依赖项添加到主 composer.json 文件中,因此我们可以在这里添加它们,并且它们将自动安装并激活到测试安装中。

.env

此文件根据环境从 .env.github.env.docker 复制而来。它包含数据库凭据和 WordPress 的安装位置。查看其内容以获取更多信息。

codeception.dist.yml

Codeception 配置。您必须将您的插件入口点(以及 composer.wp-install.json 中定义的其他入口点)配置到 modules.config.WPLoader.pluginsmodules.config.WPLoader.activatePlugins 部分,以便在 wpunit 测试期间激活。

tests/

包含测试的目录。请参阅 Codeception 和 wp-browser 文档。

docker/

此目录包含Docker环境配置。作为插件作者,您不应在此目录下进行任何编辑。您需要的任何自定义都应该可以在.env.docker和其他扩展点中完成。如果您需要一些帮助来自定义Docker环境,请随时提出问题!

这样,Docker环境可以升级。当您想要更新到最新版本时,只需从此存储库复制最新版本。

docker目录公开了一个run脚本来处理环境

  • ./docker/run compose:这是一个对docker-compose的小包装,用于启动Docker环境。
  • ./docker/run shell:一旦环境设置完毕,您可以使用此脚本来进入测试shell并运行codecept命令
  • ./docker/run update:当您更新valu/wp-testing-tools composer包时,此命令可以用来更新Docker环境。

插件目录将被挂载到/app,因此您可以从主机进行更改,并且这些更改会立即在容器中可见。

plugin.phpsrc/

这些是对如何使用Composer自动加载来结构WordPress插件的看法。如果您不关心这些,或者正在修改现有插件,您只需删除这些文件以及composer.json中的"autoload"配置即可。

但是,如果您这样做,强烈建议您阅读plugin.php中的注释。它包含了如何正确地将您的插件提供给Composer和非Composer用户的信息。

为功能测试自定义WP安装

您可以添加一个tests/wptt-wp-config.php,如果它是可读的,它将作为安装的wp-config.php中需要的一部分。

您还可以添加tests/wptt-mu-plugin.php,如果它是可读的,它将作为安装中的mu-plugin加载。

在Docker中使用XDebug

Visual Studio Code

安装PHP Debug扩展。

  1. 将启动配置添加到.vscode/launch.json或全局配置
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Docker: PHP Listen for XDebug",
      "type": "php",
      "request": "launch",
      "port": 9000,
      "pathMappings": {
        "/app": "${workspaceFolder}"
      }
    }
  ]
}
  1. 使用./docker/run compose启动容器

  2. 从VSCode的DEBUG AND RUN视图中启动Docker: PHP Listen for XDebug启动配置

  3. 添加断点

  4. 启动测试shell ./docker/run shell,然后使用codecept run wpunit运行测试

成功了!

PHPStorm

IDEKEY是"wptt"。

请贡献吗?