我必须在 Jest 每个测试文件之前进行异步设置(特别是每次启动 MongoMemoryServer)。
- 使用
setupFiles
无效,因为它不处理异步工作。传递全局 Promise 是行不通的,因为我必须在请求我的数据库模块之前设置数据库 uri 字符串(我不想在等待 Promise 之后模拟它,这很糟糕)。 - 官方指南使用
testEnvironment
并使用globalSetup
设置mongo 服务器。奇怪的是,文档说
Note: TestEnvironment is sandboxed. Each test suite will trigger setup/teardown in their own TestEnvironment.
但这不是真的,因为设置和拆卸是全局的。
测试并发运行,我需要在每个文件的 beforeAll 中插入文档,这会导致写入错误。
我对这么多人使用 Node/MongoDB/jest 堆栈这一事实感到震惊,但我却偶然发现了这么多问题。
无论如何,谢谢你!
最佳答案
您混淆了 TestEnvironment
的 setup
/teardown
方法(将在每个测试文件之前/之后执行)与 Jest runner 的 globalSetup
/globalTeardown
(将在所有测试之前/之后执行)。
关于javascript - 在每个测试文件之前开 Jest 异步设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53279992/