首页 > 解决方案 > 使用数据库进行 Laravel 测试 - 每个测试的单个事务未按预期工作

问题描述

我正在使用Laravel 7.30.4PHPUnit 8.5.14MySQL 8.0.17

所以我已经在我正在进行的项目中编写了一些测试,有时测试没有充分的理由失败,或者至少我们无法说出问题(它发生在 200 分之 1 中)。然后我们意识到写入数据库的测试没有重置/回滚他们写入的数据,这有时会导致其他测试失败。我已经尝试了一些东西,它们似乎都不起作用,对我来说

我的表引擎都设置为InnoDB. protected $connectionsToTransact = ['mysql'];当我使用旧的Resetting DB using transactions - Laravel 5.4方法时,我还尝试添加到我的测试中。除了正常的数据库迁移之外,我还使用播种机。

我读过很多文章,有人说这是因为 MySQL 不支持嵌套事务(这里)。那么为什么它在“正常”的开发和生产系统中工作呢?

谢谢你的帮助

标签: phpmysqllaravelphpunitlaravel-7

解决方案


推荐阅读