javascript - 在每个测试文件之前开 Jest 异步设置

标签 javascript installation jestjs each

我必须在 Jest 每个测试文件之前进行异步设置(特别是每次启动 MongoMemoryServer)。

  1. 使用 setupFiles 无效,因为它不处理异步工作。传递全局 Promise 是行不通的,因为我必须在请求我的数据库模块之前设置数据库 uri 字符串(我不想在等待 Promise 之后模拟它,这很糟糕)。
  2. 官方指南使用testEnvironment 并使用globalSetup 设置mongo 服务器。奇怪的是,文档说

Note: TestEnvironment is sandboxed. Each test suite will trigger setup/teardown in their own TestEnvironment.

但这不是真的,因为设置和拆卸是全局的。

测试并发运行,我需要在每个文件的 beforeAll 中插入文档,这会导致写入错误。

我对这么多人使用 Node/MongoDB/jest 堆栈这一事实感到震惊,但我却偶然发现了这么多问题。

无论如何,谢谢你!

最佳答案

您混淆了 TestEnvironmentsetup/teardown 方法(将在每个测试文件之前/之后执行)与 Jest runner 的 globalSetup/globalTeardown(将在所有测试之前/之后执行)。

关于javascript - 在每个测试文件之前开 Jest 异步设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53279992/

相关文章:

java - 如何为我的 Java 应用程序创建 Mac 安装程序?

javascript - JestJs认为没有调用ajax

asp.net - 在我的安装项目中包含另一个MSI文件

javascript - 如何使用 create-react-app 设置 Jest Watch 插件

reactjs - 无法使用数据路由器测试unstable_useBlocker

javascript - 从动态创建的链接动态地将参数传递给 JavaScript

javascript - 使用 Javascript 自动打开弹出新窗口

javascript - 长时间工作后调用函数(回调)

javascript - 如何在javascript数组中添加Java对象?

git - Homebrew 安装的 gettext 和 git 不兼容?