用途:在本地 Docker 容器中运行与调查 baserCMS(CakePHP5 / PHPUnit)单元测试,也可为单个插件搭建独立测试环境,用于 4→5 迁移中的 TDD。
主要能力:全量套件、单文件/单方法(--filter)、php -l 语法检查;从 phpunit.xml.dist 按插件划分 testsuite(BaserCore / BcBlog / BcMail 等);失败可按异常消息或测试类聚合,区分致命错误与 logs/debug.log 中的非推荐警告;可定位与 git diff、插件加载、DI 容器、i18n 有关的环境类失败;支持 Factory(vierge-noire/cakephp-fixture-factories)与自定义 migration 准备测试数据;支持控制器 HTTP 集成测试(GET 渲染、POST、ajax、CSRF/Security token)。
使用方式:先 docker ps 确认容器(勿凭名字猜),必要时 docker start <container> <db-container> 并等待 mysqld 就绪;命令建议整体包在 docker exec basercms sh -c '...' 单引号内以触发权限自动批准,例如全量:docker exec basercms sh -c 'cd /var/www/html && vendor/bin/phpunit --no-coverage > /tmp/phpunit_full.log 2>&1; tail -45 /tmp/phpunit_full.log';全量约 10 分钟。插件独立环境需 composer.json(baser-core、phpunit 10.5.31、phinx 固定 0.16.10)、phpunit.xml.dist,tests/bootstrap.php 与 tests/TestApp 可由 baserproject/bc-bake 的 bin/cake bake bc_plugin {PluginName} 生成后再移入。
限制与注意:phinx 0.16.11 会导致 migrations 致命错误,须固定 0.16.10;bake 对已注册插件名会拒绝,需先临时改名并避免覆盖自写 composer.json;测试库须预先创建;assertResponseSuccess()(200)会掩盖 Undefined variable 等警告,应另查 logs/error.log;JS 绑定的 DOM id 变更不会报错,需在测试中断言 id 存在。资料未提供具体价格、平台与效果等信息。