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

时间:2018-11-18 21:09:58

标签: node.js mongodb unit-testing tdd jestjs

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

当我仅运行一个测试文件时没有错误,但是当我运行多个测试文件时却出现了错误。错误消息:MongoError: Cannot create collection auth-db.users - database is in the process of being dropped.

我与您共享示例代码:

users.route.test.ts:

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

users.service.test.ts:

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

运行所有测试时,“ sometimes”给出错误。我写了上面的错误信息。该错误的原因是重置过程仍然继续。我不能解决这个问题。如果您能提供帮助,我将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

您正在寻找的是--runInBand命令。这使得开玩笑地串行运行,而不是创建运行测试的子进程的工作程序池