公司动态
WordPress 测试站点如何高效管理:wp-browser dev:start / dev:rebuild 命令组完全实战指南
WordPress 测试站点如何高效管理wp-browser dev:start / dev:rebuild 命令组完全实战指南【免费下载链接】wp-browserThe easy and reliable way to test WordPress with Codeception. 10 years of proven success.项目地址: https://gitcode.com/gh_mirrors/wp/wp-browserwp-browser是基于 Codeception 和 PHPUnit 的 WordPress 测试套件也是 GitHub 加速计划wp / wp-browser收录的开源项目历经 10 年验证、深受 WordPress 开发者信赖。对于新手来说最头疼的往往不是写测试而是测试站点本身的管理克隆新项目后tests/_wordpress目录缺失、PHP 内置服务器要手动起、ChromeDriver 和 Docker Compose 各管各的……wp-browser 的dev 命令组dev:start/dev:stop/dev:restart/dev:info/dev:rebuild正是为解决这些问题而生——几条命令重建测试站点、启停全部服务、查看服务状态全程无需离开终端。 先看懂dev 命令组有哪些命令wp-browser 把测试环境所需的基础设施抽象为服务扩展Service Extensiondev 命令组就是它们的统一遥控器。5 个命令分工如下命令作用典型场景dev:start启动配置中声明的所有测试服务开跑测试前启动 PHP 内置服务器、ChromeDriver 等dev:stop停止所有测试服务测试结束、释放端口dev:restart等价于dev:stopdev:start改了配置后快速刷新环境dev:info以 YAML 输出各服务的状态信息排查服务到底起了没dev:rebuild重建tests/_wordpress测试站点全新克隆仓库、CI 构建可被接管的服务包括BuiltInServerControllerPHP 内置 Web 服务器、ChromeDriverControllerWebDriver 驱动、DockerComposeControllerDocker 容器栈与MySqlServerController。它们都实现了统一的服务扩展接口见src/Extension/ServiceExtension.php所以dev:start一条命令就能把全部服务拉起——这正是高效管理的核心。 dev:rebuild一键重建 WordPress 测试站点这是整组命令中对新手最友好的一条。它的价值在于把vendor/bin/codecept init wpbrowser首次初始化时的下载 WordPress → 配置 SQLite → 完成安装整套流程重放一遍目标目录是默认配置使用的tests/_wordpress。适用场景 项目刚克隆下来tests/_wordpress没有被提交到仓库 CI 构建节点上需要从零搭建测试站点 本地测试站点脏了想要一份干净的重新安装。使用非常简单vendor/bin/codecept dev:rebuild关于 WordPress 版本dev:rebuild的取值优先级为--wp-version参数 tests/.env中init时记录的WORDPRESS_VERSIONlatest。建议固定到与dump.sql数据基线一致的版本保证重建的站点与数据库快照匹配vendor/bin/codecept dev:rebuild --wp-version6.8.1两个实用细节源码见src/Command/DevRebuild.php幂等保护如果目标目录已存在wp-load.php命令会提示站点已安装并直接退出——想强制重建先删除该目录再执行仅支持默认 SQLite 配置它是为init生成的 SQLite 默认配置设计的。若你使用自定义 MySQL 安装请自行管理 WordPress 文件。⚡ dev:start / dev:stop / dev:restart服务的启停这三个命令读取codeception.yml或codeception.dist.yml中extensions段声明的服务扩展并依据config段读取各服务的配置实现见src/Command/ServiceExtensionsTrait.phpvendor/bin/codecept dev:start # 拉起全部服务 vendor/bin/codecept dev:stop # 停止全部服务 vendor/bin/codecept dev:restart # 一键重启没有声明任何服务扩展时会友好提示No services to start.不会报错。 日常开发中更推荐使用dev:restart修改了服务器端口、工作进程数等配置后重启一次即可生效省去手动停止的麻烦。小贴士当你直接运行vendor/bin/codecept run时服务扩展也会在套件初始化阶段自动启动——dev:start的意义在于让你在写测试、调试期间手动把环境提前备好。 dev:info随时查看服务状态vendor/bin/codecept dev:info命令会把各服务内置服务器、ChromeDriver、Docker Compose 等的信息以 YAML 格式打印出来源码见src/Command/DevInfo.php方便快速确认端口、进程等状态是排障第一步的好帮手。️ 首次使用先用 init 生成配置dev 命令组依赖init生成的配置。如果你刚接触 wp-browser推荐的标准起步流程是vendor/bin/codecept init wpbrowser向导会依次询问测试套件的命名、WordPress 安装路径、测试数据库凭据、管理后台账号等并在完成后生成codeception.yml、各套件配置与 Helper。 完整工作流从克隆仓库到跑起测试把前面所有内容串起来一个新人接手项目后的完整流程如下获取项目克隆仓库如git clone https://gitcode.com/gh_mirrors/wp/wp-browser并执行依赖安装重建测试站点vendor/bin/codecept dev:rebuild全新克隆时必做启动服务vendor/bin/codecept dev:start运行测试vendor/bin/codecept run wpunit收尾vendor/bin/codecept dev:stop或下次直接dev:restart。测试跑起来后输出形如下图所示的各套件结果汇总❓ 常见问题 FAQQ1dev:rebuild提示只支持 SQLite 配置该命令面向init生成的默认 SQLite 配置。若你的项目使用自定义 MySQL 安装路径需要手动准备 WordPress 文件或重新用init配置默认环境。Q2重建后站点数据和我提交的不一致dev:rebuild只负责装好一个干净的 WordPress数据库基线由 WPDb 模块在测试运行时从你提交的dump.sql恢复。请确保--wp-version与生成dump.sql时的 WordPress 版本一致。Q3dev:start显示 No services to start.说明codeception.yml的extensions段中没有任何已启用的服务扩展。按你的需要启用BuiltInServerController、ChromeDriverController等扩展后重试。 延伸阅读命令组完整文档docs/commands.md含dev:*与wp:db:import等全部命令说明默认配置详解docs/default-configuration.md服务扩展配置docs/extensions/BuiltInServerController.md、docs/extensions/ChromeDriverController.md、docs/extensions/DockerComposeController.md命令源码src/Command/DevStart.php、src/Command/DevRebuild.php、src/Command/DevInfo.php掌握dev:rebuilddev:start这条重建 启动主线再辅以dev:info排障你就能像管理生产环境一样从容地管理 WordPress 测试站点了。祝测试顺利【免费下载链接】wp-browserThe easy and reliable way to test WordPress with Codeception. 10 years of proven success.项目地址: https://gitcode.com/gh_mirrors/wp/wp-browser创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考