Laravel 截断 table 导致测试期间出错
Laravel truncating table causing error during test
我正在尝试 运行 分类 table,但每次我尝试通过测试 运行 它时,我都会收到 PDOException:
There is no active transaction
我正在使用 RefreshDatabase
特征。
我的代码如下所示:
Model::query()->truncate();
错误是由 truncate
操作引起的
基于
上的回答
当您执行 truncate
语句时,事务被提交,然后 TRUNCATE 被执行且无法撤消。
这会影响 RefreshDatabase
特性,它对每个测试都使用一个事务。
这是它的运行方式
RefreshDatabase
创建交易
- 你在这里用数据库做点什么
- 你执行
truncate
Truncate
提交事务
RefreshDatabase
尝试提交事务但无法提交,因为它已经提交导致错误 There is no active transaction
尝试使用特征 DatabaseMigrations
而不是 RefreshDatabase
我正在尝试 运行 分类 table,但每次我尝试通过测试 运行 它时,我都会收到 PDOException:
There is no active transaction
我正在使用 RefreshDatabase
特征。
我的代码如下所示:
Model::query()->truncate();
错误是由 truncate
操作引起的
基于
上的回答当您执行 truncate
语句时,事务被提交,然后 TRUNCATE 被执行且无法撤消。
这会影响 RefreshDatabase
特性,它对每个测试都使用一个事务。
这是它的运行方式
RefreshDatabase
创建交易- 你在这里用数据库做点什么
- 你执行
truncate
Truncate
提交事务RefreshDatabase
尝试提交事务但无法提交,因为它已经提交导致错误There is no active transaction
尝试使用特征 DatabaseMigrations
而不是 RefreshDatabase