You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:32:41