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

Laravel并行测试无法创建数据库,需手动创建该测试库吗?

Laravel并行测试数据库创建问题解答

核心结论

Laravel会自动为并行测试的每个进程创建独立的测试数据库,无需手动创建mydbname_test_11这类带进程编号的数据库,但需要满足两个必要前提。

必要前提

  • 你的数据库用户拥有创建数据库的权限
  • 已正确配置测试环境的数据库基础名称

具体解决步骤

  1. 检查并配置数据库用户权限
    确保连接数据库的账号具备创建数据库的权限,可通过以下SQL命令授权:

    GRANT CREATE ON *.* TO '你的数据库用户名'@'localhost';
    FLUSH PRIVILEGES;
    
  2. 配置测试环境数据库参数
    新建或编辑项目根目录下的.env.testing文件,指定测试环境的基础数据库名(并行时Laravel会自动在名称后追加_进程号):

    APP_ENV=testing
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=mydbname_test
    DB_USERNAME=你的数据库用户名
    DB_PASSWORD=你的数据库密码
    
  3. 自动创建与销毁进程专属数据库
    权限和配置正确后,执行php artisan test --parallel时,Laravel会自动为每个测试进程生成对应数据库(如mydbname_test_11),测试完成后还会自动销毁这些临时数据库。

  4. 特殊场景兜底处理
    如果权限配置后仍报错,可先手动创建基础测试库mydbname_test,再执行并行测试命令,Laravel会基于这个基础库生成进程专属的测试数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:15:32