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

Node.js MongoError:无法创建集合用户-正在删除数据库,node.js,mongodb,unit-testing,tdd,jestjs,Node.js,Mongodb,Unit Testing,Tdd,Jestjs,我有一个RESTAPI,我正在为这个项目编写TDD。我的TDD由两部分组成:路线和服务。我选择了开玩笑。我有一个用于测试的MongoDB数据库。每次测试完成后,我都会使用afterAll()方法重置数据库。在这个方法中,我运行mongoose.connection.dropDatabase函数 当我只运行一个测试文件时没有错误,但是当我运行多个测试文件时,我会得到一个错误。错误消息: MongoError:无法创建集合auth-db.users-数据库处于 被丢弃的过程 我与您分享示例代码: u

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

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

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

我与您分享示例代码:

users.route.test.ts:

users.service.test.ts:

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

谢谢。


您要查找的是--runInBand命令。这使得jest可以串行运行,而不是创建一个运行测试的子进程的工作池。显然,您并不是在等待承诺/回调来解决正在删除数据库的问题。你需要这样做。@NeilLunn,我知道,但我怎么做?你根本没有在问题中包含任何代码。我们这里没有读心术,所以你实际上需要。但老实说,“等待承诺/回电解决”是不言自明的,如果你“不知道如何去做”,我们可能会最好地告诉你现有的答案,这些答案已经告诉你如何去做。