推荐按项目安装PHPUnit而非全局安装,执行composer require --dev phpunit/phpunit;运行需用vendor/bin/phpunit;配置phpunit.xml时注意bootstrap、testsuites路径及PSR-4命名空间映射;PHP与PHPUnit版本需匹配,可通过config.platform指定PHP版本避免语法错误。

直接在项目里用 Composer 安装 PHPUnit
PHPUnit 不再全局安装更安全,推荐按项目安装。执行:
composer require --dev phpunit/phpunit即可把 PHPUnit 加入
require-dev 并下载到 vendor/。注意加 --dev,否则会进生产依赖,CI 或线上部署时可能误装。
运行 PHPUnit 时找不到命令?用 vendor/bin/phpunit
Composer 安装后,PHPUnit 可执行文件不在系统 PATH,不能直接敲 phpunit。必须用完整路径:
vendor/bin/phpunit(Linux/macOS)或
vendor\bin\phpunit.bat(Windows)。你也可以在
composer.json 的 scripts 里加一条:"test": "vendor/bin/phpunit",之后用
composer test 启动。
phpunit.xml 配置文件里常见的坑
默认 PHPUnit 会找 phpunit.xml 或 phpunit.xml.dist。没配好就容易报 Class 'Tests\TestCase' not found 这类错误。关键配置点:
-
bootstrap要指向自动加载入口,比如vendor/autoload.php -
testsuites下的directory必须是真实存在的路径,且需匹配你的测试文件结构(如tests/) - 如果用 PSR-4 加载测试类,确保
tests/目录已映射到Tests\命名空间,且测试文件名以Test.php结尾、类名以Test结尾
PHP 版本和 PHPUnit 版本不匹配怎么办
新版 PHPUnit 对 PHP 版本有硬性要求。例如:phpunit/phpunit:^10 要求 PHP >= 8.1,^9 要求 >= 7.3。执行 composer require --dev phpunit/phpunit 时,Composer 会按当前 PHP 版本自动选兼容版本,但有时会选错——尤其当项目用了旧 PHP 但 composer.json 没锁死 platform。解决办法是显式指定版本,或在 composer.json 加:
"config": {"platform": {"php": "8.0.28"}}。否则可能装上高版本 PHPUnit,运行时报 ParseError: syntax error, unexpected token "string" 这类致命错误。
立即学习“PHP免费学习笔记(深入)”;











