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

Laravel 10 Dusk测试未自动加载.env.testing问题求助

Laravel Dusk 不自动加载 .env.testing 的解决方案

问题根源

你遇到的情况核心在于Dusk 默认使用的 phpunit.dusk.xml 未配置测试环境变量。普通单元/功能测试依赖的 phpunit.xml 里已经设置了 APP_ENV=testing,但 Dusk 单独使用 phpunit.dusk.xml,默认情况下这个文件没有环境配置,导致不指定 --env=testing 参数时,Laravel 会以 local 环境启动,加载根目录的 .env 文件而非 .env.testing。

修复步骤

修改项目根目录的 phpunit.dusk.xml,在 <phpunit> 标签内添加环境配置节点,强制 Dusk 运行在 testing 环境:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="vendor/autoload.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Browser Test Suite">
            <directory suffix="Test.php">./tests/Browser</directory>
        </testsuite>
    </testsuites>
    <!-- 新增环境配置 -->
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="BCRYPT_ROUNDS" value="4"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="MAIL_MAILER" value="array"/>
        <env name="QUEUE_CONNECTION" value="sync"/>
        <env name="SESSION_DRIVER" value="array"/>
        <env name="TELESCOPE_ENABLED" value="false"/>
    </php>
</phpunit>

额外检查项

  • 确认 .env.testing 文件无语法错误(如引号未闭合、配置项格式错误),且数据库连接信息正确
  • 执行 php artisan config:clear 清除全局配置缓存,避免旧配置残留
  • 若之前运行过 Dusk 测试,执行 php artisan dusk:clear 清理 Dusk 临时文件与缓存

内容的提问来源于stack exchange,提问作者Dom

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:52:30