我有一个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命令。串行运行,而不是创建运行测试的子进程的工作池,这是一个笑话