首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jest的竞争条件

使用Jest的竞争条件
EN

Stack Overflow用户
提问于 2017-08-09 08:02:07
回答 1查看 1.6K关注 0票数 7

我正在测试我的graphql端点,它通过sequelize with Jest对数据库执行查询。但有时我发现我的测试文件有一种竞争条件。我的意思是,对于每个测试文件,我都有一个setup DB块,比如

代码语言:javascript
运行
复制
beforeAll(async () => {
  await database.sequelize.sync({force: true})
  await database.User.create(user)
})

因此,在测试文件中,我可以很容易地预测DB中的内容。有时这会导致每个测试文件都尝试执行.sync()的问题。一个测试文件将创建DB,而另一个将执行drop DB。

尽管我在所有的测试中都使用了await,但这看起来并不能保证测试文件会等待另一个测试完成。

要确保每个测试文件都能预测数据库中的内容,同时又不与其他测试冲突,最好的方法是什么?让测试等待其他测试完成,这真的是一个好主意吗?对我来说,这似乎并没有优化,因为运行整个测试套件需要更多的时间。

EN

回答 1

Stack Overflow用户

发布于 2020-03-24 02:37:22

您使用了多少工人?测试在同一测试文件内连续运行,但不能在不同的测试文件之间运行。

有许多选项可以尝试:1-为每个测试文件创建和使用唯一的DB。2-使它们都使用--runInBand标志串行运行。我不确定,但也许--maxWorkers=1也是这么做的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45579694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档