MongoError:无法创建集合用户-数据库正在被删除



我有一个REST API,我正在为这个项目编写TDD。我的TDD由两部分组成:路由和服务。我选择使用Jest。我有一个MongoDB数据库,用于测试。每次测试完成后,我都会使用afterAll()方法重置数据库。在这个方法中,我运行了mongoose.connection.dropDatabase函数。

当我只运行一个测试文件时没有错误,但当我运行多个测试文件,我会得到一个错误。错误消息:

MongoError:无法创建集合auth-db.users-数据库位于被丢弃的过程。

我与您分享示例代码:

users.route.test.ts:

https://gist.github.com/mksglu/8c4c4a3ddcb0e56782725d6457d97a0e

users.service.test.ts:

https://gist.github.com/mksglu/837202c1048687ad33b4d1dee01bd29c

当我的所有测试都运行时,"sometimes"会出现错误。我写了上面的错误信息。出现此错误的原因是重置过程仍在继续。我解决不了这个问题。如果你能帮忙,我将不胜感激。

谢谢。

https://jestjs.io/docs/en/cli.html#runinband

您要查找的是--runInBand命令。串行运行,而不是创建运行测试的子进程的工作池,这是一个笑话

最新更新