在 composer.json 的 scripts 中配置 phpUnit 命令(如 "test": “phpunit”),可实现 composer test 一键运行测试;需先以 –dev 安装 phpunit/phpunit,配置 phpunit.xml,并支持 verbose、coverage、CI 等多场景脚本。

在 Composer 的 composer.json 中配置 PHPUnit 测试脚本,能让测试像运行命令一样简单——比如直接执行 composer test 就自动跑完所有用例,无需记住完整路径或参数。
1. 确保 PHPUnit 已正确安装
推荐以开发依赖方式安装 PHPUnit(兼容现代版本):
- PHP 8.1+ 项目建议用 PHPUnit 10.x:
composer require --dev phpunit/phpunit:^10 - 安装后检查是否可执行:
./vendor/bin/phpunit --version - 确保项目根目录下有
phpunit.xml或phpunit.xml.dist配置文件(定义测试目录、引导文件、覆盖率等)
2. 在 composer.json 的 scripts 段添加测试命令
编辑 composer.json,在 "scripts" 下加入自定义脚本:
"scripts": { "test": "phpunit", "test-verbose": "phpunit --verbose", "test-cover": "phpunit --coverage-html coverage" }
说明:
立即学习“PHP免费学习笔记(深入)”;
-
"test"是最简调用,Composer 会自动查找并执行./vendor/bin/phpunit - 如果 PHPUnit 二进制不在默认路径,可写绝对路径:
"test": "vendor/bin/phpunit" - 支持组合命令,例如先清理再测试:
"test": "rm -rf coverage/ && phpunit --coverage-html coverage"(linux/macOS) - windows 用户可用
cmd /c包裹,或改用 cross-env 工具保证兼容性
3. 支持不同环境或场景的快捷脚本
按需扩展更多语义化命令:
-
"test-unit":只跑单元测试(配合--testsuite Unit和 phpunit.xml 中的 suite 配置) -
"test-ci":CI 环境专用,输出 junit 格式供流水线解析:"phpunit --log-junit phpunit-report.xml" -
"test-dry":仅检查配置是否有效,不真正执行:"phpunit --list-tests --no-configuration"
4. 运行与集成技巧
保存 composer.json 后即可使用:
- 运行测试:
composer test - 查看详细输出:
composer test-verbose - 结合其他脚本串联:
composer run-script test && composer run-script post-test - git Hook 自动触发:用 husky 或 simple-git-hooks,在 pre-commit 中加
composer test,失败则中断提交
基本上就这些。关键是让脚本名直观、行为可预期,再配合好 phpunit.xml 配置,就能把测试真正“自动化”进日常开发流里。