直接点绿色三角运行失败,90%是PhpStorm未连上Composer自动加载器;必须在Settings→Tools→PHP→Test Frameworks中选“PHPUnit by Composer autoloader”,路径填项目根目录下vendor/autoload.php绝对路径,且tests目录需标记为Test Sources Root。

直接点绿色三角运行测试失败,90%不是代码问题,而是 PhpStorm 根本没加载到 PHPUnit\Framework\TestCase —— 它连自动加载器都没连上。
为什么右键 Run 没反应或报 Class not found
这不是 PHPUnit 没装,是 PhpStorm 启动测试时压根没走 Composer 的自动加载链路。
- 进 Settings → Tools → PHP → Test Frameworks,点击 +,必须选 PHPUnit by Composer autoloader(别选 “PHPUnit library” 或 “by phpunit.phar”)
-
Path to autoloader必须填项目根目录下的vendor/autoload.php(绝对路径),不能填vendor/bin/phpunit或phpunit.phar - 如果刚执行
composer require --dev phpunit/phpunit,但还没生成vendor/autoload.php,先跑一次composer dump-autoload -o - 测试类文件路径和命名空间不匹配也会触发这个错误:比如声明
namespace TestsUnit;,文件就必须放在tests/Unit/ExampleTest.php
phpunit.xml 不生效的三个硬性条件
PhpStorm 只认一个地方、一个名字、一种结构 —— 少一个就静默忽略。
- 文件必须在项目最顶层目录(即你用 PhpStorm 打开的那个文件夹),不能在
config/phpunit.xml或tests/phpunit.xml - 文件名必须是
phpunit.xml或phpunit.xml.dist,大小写一个字母都不能错 - 打开文件确认顶层标签是
<phpunit>,不能只有<?xml version="1.0"?>;空文件、格式错误、缺少<testsuites>或<bootstrap>都会导致失效 - 右键该文件 → Mark as PHPUnit Configuration File;若菜单里没有这项,检查 PHP 插件是否启用(Settings → Plugins 搜 PHP)
测试类能识别但覆盖率显示 0%
覆盖率不是“开了 Xdebug 就自动有”,PhpStorm 的图形视图需要两层对齐:启动方式 + 驱动配置。
立即学习“PHP免费学习笔记(深入)”;
- 必须用右键菜单里的 Run with Coverage 启动(不是普通 Run),否则根本不采集数据
-
Settings → Tools → Coverage 中,“Coverage runner” 必须设为
Xdebug—— 即使你实际用的是 PCOV,当前 PhpStorm 版本(2026.4)仍只认 Xdebug 为有效驱动 - 确保
tests/目录已右键 → Mark Directory as → Test Sources Root(图标变绿),否则 IDE 不会把它当测试入口扫描 - 如果
phpunit.xml里<filter>白名单没覆盖你的源码目录(如<directory>./src</directory>),覆盖率也会是 0%
调试时断点不命中或跳进 vendor 源码
本质是 Xdebug 返回的文件路径(如 /var/www/html/app/Service.php)和你本地路径(如 /home/user/project/app/Service.php)没映射上。
- 进 Settings → PHP → Servers,添加一个 Server(Host:
localhost,Port: 与 Web 服务一致,如 8080) - 勾选 Use path mappings,把远程路径(如
/var/www/html)映射到你的本地项目根目录 - CLI 运行测试时,Xdebug 路径映射默认不生效;如需 CLI 调试,必须在
php.ini中设置xdebug.start_with_request = yes并配好xdebug.client_host - 不要开启 Filter debug connection by IDE key(Settings → PHP → Debug → Xdebug),除非你真在多 IDE 协同调试
最容易被忽略的是:改了 composer.json 的 autoload-dev 映射后,不执行 composer dump-autoload -o,PhpStorm 和终端都看不到新类;还有就是 tests/ 目录没手动标记为 Test Sources Root,绿色图标没出现,IDE 就当它不存在。



















