首页 > 解决方案 > 如何在 laravel 中运行并行测试?

问题描述

我在项目中有 15 个功能测试。env.test 的信息:

DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=test_db
DB_USERNAME=test
DB_PASSWORD=123456

当我使用并行运行测试时php artisan test --parallel,出现错误:

1) Tests\Feature\Settlement\PublicSTest::testCreatePublicS
Illuminate\Database\QueryException: SQLSTATE[42501]: Insufficient privilege: 7 ERROR:  permission denied to create database (SQL: create database "test_db_test_3" encoding "utf8")

如何解决此错误?

标签: phplaraveltesting

解决方案


正如文档所述,Laravel将创建多个数据库以避免并行进程与其他数据发生冲突。

添加用户创建数据库的权限,假设这是一个postgres基于错误的数据库。

访问cli

psql test_db test

要执行的命令

ALTER USER test CREATEDB;

推荐阅读