aivec/codecept-docker

使用Docker进行Codeception WordPress测试。

v0.8.4 2023-11-25 13:03 UTC

README

A CLI包装器,用于Codeceptionwp-browser,将WordPress集成测试的环境容器化和自动化创建。跳转到快速入门指南

背景(为什么?)

直到最近,WordPress的集成测试基本上还是一个梦想。对于大多数人来说,设置一个仅用于集成测试的完整功能环境的门槛实在是太高了。

然后出现了Codeceptionwp-browser。Codeception是一个PHP测试框架,允许开发者轻松编写端到端的集成测试,而wp-browser是Codeception的一个模块,允许你在WordPress环境中编写测试(类似于WordPress核心测试)。这两个工具结合使用非常强大,但原始问题仍然存在...

设置环境...

Docker拯救了这一切

这个库自动化了环境创建,并将所有内容放入Docker容器中。没有任何交互提示。集成测试的整个目的就是自动化。集成环境创建应该没有不同

唯一需要的是在你的项目根目录中有一个codecept-docker.json配置文件,至少必须指定根文件夹是插件还是主题。CLI随后将根文件夹挂载到WordPress容器中作为插件/主题。此配置还可以用于指定要安装的WordPress和PHP版本,要安装的插件/主题等。

默认情况下,创建的容器将使用安装此包的根文件夹名称作为前缀。这允许每个项目拥有多个不冲突的环境。

环境创建后,WordPress容器就像一个代理,将codecept命令转发出去。然后所有测试都在WordPress容器内部执行。

最终结果是开发者不需要了解测试运行环境的任何细节。只需启动它,然后开始!

主要功能

  • 自动设置和配置WordPressMySQLphpMyAdmin容器
  • 自动设置和配置Selenoid,Docker解决方案,用于WPWebDriver测试
  • 自动为WPWebDriver测试执行per-test视频录制。(例如:myFirstTest.success.mp4
  • 快照功能,可极大加速WordPress容器的重启
  • WP-CLI,易于自定义WordPress安装

要求

  • PHP 7.2^
  • composer
  • docker

安装

composer require --dev aivec/codecept-docker

快速入门指南

创建脚手架

以下命令只需在安装此包的第一次运行时运行。有两个步骤

首先,创建一个codecept-docker.json配置文件

# --type may be 'plugin', 'theme', or 'other'
./vendor/bin/aivec-codecept create-config --type=plugin

其次,生成Codeception文件夹/文件

./vendor/bin/aivec-codecept bootstrap --with-sample-tests

启动容器

最后,启动容器。如果是第一次,可能需要一段时间

./vendor/bin/aivec-codecept up

运行测试

所有测试套件,除了 unit 测试,都必须在容器中通过 aivec-codecept codecept 命令运行。让我们用以下命令运行为 wpunit 套件创建的示例测试:

./vendor/bin/aivec-codecept codecept run wpunit

就这样了!

aivec-codecept codecept 命令的行为与正常的 codecept 命令完全相同,只是它是在 WordPress 容器内调用的。使用此命令替代正常的 codecept 命令来运行测试。