Laravel Pest自定义单参数文件夹结构测试识别问题求助
解决Laravel Pest仅识别Auth目录测试、其他目录提示No tests found的问题
1. 修正phpunit.xml的测试套件配置
确保你的<testsuites>块正确包含所有子目录的Unit/Feature,并且指定测试文件的后缀规则:
<testsuites> <testsuite name="Unit"> <directory suffix="Test.php">./tests/*/Unit</directory> </testsuite> <testsuite name="Feature"> <directory suffix="Test.php">./tests/*/Feature</directory> </testsuite> </testsuites>
重点:必须添加suffix="Test.php",Pest默认只识别以Test.php结尾的文件,缺少这个会导致非Auth目录的测试被忽略。
2. 严格遵循测试文件命名规范
所有测试文件必须以Test.php结尾,比如tests/App/Feature/UserTest.php,不能使用User.php、user_test.php这类不符合规范的命名。
3. 注意路径大小写(Docker/Sail环境)
Sail基于Linux容器,路径大小写敏感。如果实际目录是tests/App(首字母大写),执行sail pest tests/app会找不到测试,必须严格匹配大小写:
sail pest tests/App/Feature
4. 调整pest.php的全局uses配置
确保全局uses的路径匹配正确,相对于tests目录的子路径即可:
// pest.php uses(Tests\TestCase::class)->in('App/Feature', 'Auth/Feature', 'Comment/Feature'); // 或者用通配符匹配所有Feature目录 uses(Tests\TestCase::class)->in('*/Feature');
如果通配符不生效,直接列出所有子目录的Feature路径更稳妥。
5. 验证单个测试文件的可执行性
先尝试运行单个测试文件,确认Pest能正常识别:
sail pest tests/App/Feature/YourTestFile.php
如果这个命令能正常执行,说明问题出在路径匹配或配置上,而非测试文件本身。
6. 清除缓存并重启容器
执行以下命令清除可能存在的配置缓存:
sail artisan config:clear sail down && sail up -d
内容的提问来源于stack exchange,提问作者novecentonove
相关产品推荐
相关产品推荐

