Composer配置PSR-4自动加载后运行PHPUnit提示MyApp\ClientCrawler类未找到
问题根源
你执行PHPUnit测试的命令中携带了--no-configuration参数,该参数会强制忽略项目根目录下的phpunit.xml配置文件,导致你配置的自动加载规则完全不生效。
你在phpunit.xml中指定了bootstrap="vendor/autoload.php",作用是启动测试前自动加载Composer的自动加载文件,没有加载该文件的前提下,你composer.json中定义的PSR-4命名空间映射规则不会被触发,自然找不到MyApp\ClientCrawler类。
解决方案
- 修改PhpStorm的PHPUnit运行配置:
- 点击PhpStorm右上角运行配置的下拉按钮,选择「Edit Configurations」
- 找到对应的PHPUnit运行配置项,删除「Test runner options」输入框中的
--no-configuration参数 - 确认「Configuration file」路径指向你项目根目录的
phpunit.xml,保存后重新运行测试即可
- 你也可以直接在项目根目录命令行执行测试,会自动读取配置文件:
# Windows 环境 vendor\bin\phpunit.bat # 类Unix环境 ./vendor/bin/phpunit
额外检查项
确认ClientCrawler.php文件确实存放在项目根目录的src/目录下,文件名和类名大小写完全一致,没有拼写错误。
内容的提问来源于stack exchange,提问作者PrimuS
相关产品推荐
相关产品推荐

