我有一个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
”给出错误。我写了上面的错误信息。该错误的原因是重置过程仍然继续。我不能解决这个问题。如果您能提供帮助,我将不胜感激。
谢谢。
答案 0 :(得分:0)
https://jestjs.io/docs/en/cli.html#runinband
您正在寻找的是--runInBand命令。这使得开玩笑地串行运行,而不是创建运行测试的子进程的工作程序池