gpt4 book ai didi

unit-testing - 与 Jest 的竞争条件

转载 作者:行者123 更新时间:2023-12-03 14:44:33 25 4
gpt4 key购买 nike

我正在测试我的 graphql 端点,该端点通过 Jest 的 sequelize 对 DB 进行查询。但有时我发现我的测试文件有点竞争条件。我的意思是,对于每个测试文件,我都有一个设置 DB 块,例如

beforeAll(async () => {
await database.sequelize.sync({force: true})
await database.User.create(user)
})

以便在测试文件中我可以轻松预测数据库中的内容。有时这会导致每个测试文件尝试执行的问题 .sync() .一个测试文件将创建数据库,而另一个执行删除数据库。

即使我用过 await在我的测试中,这看起来并不能保证测试文件将等待另一个测试完成。

这里最好的方法是确保每个测试文件都可以通过拥有干净的数据库来预测数据库中的内容,同时又不与其他测试发生冲突?让测试等待其他人完成实际上是一个好主意吗?对我来说似乎没有优化,因为运行整个测试套件需要更多时间。

最佳答案

你用了多少 worker ?测试在同一个测试文件中连续运行,但不在不同的测试文件之间运行。

有多种选择可以尝试:
1 - 为每个测试文件创建和使用唯一的数据库。
2 - 使它们全部与 --runInBand 串行运行旗帜。我不确定,但也许 --maxWorkers=1也这样做。

关于unit-testing - 与 Jest 的竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45579694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com