Jest似乎并没有允许所有测试运行共享一个用于集成测试的全局上下文。它确实具有globalSetup和globalTeardown选项,但似乎这些挂钩并非旨在成为所有测试运行中的共享测试上下文。您可以使用这些钩子将某些东西放在一起,通过节点进程传递变量,但是随后会出现其他问题(断言期间Array构造函数的不同实例,等等)。
如果我的集成测试设置过程相当繁重,是否建议我只进行一次测试运行,我所有的集成测试都将在其中运行并可以访问共享上下文?
目前,我的集成测试分布在多个文件(各个入口点)中,并导入设置过程。但是,该安装过程每个文件只运行一次。我假设可以有一个入口点,然后在同一上下文中导入所有集成测试文件。这是一个好的/推荐的选择吗?
设置用于Jest的集成测试的推荐方法是什么?
答案 0 :(得分:0)
我已经结合使用了两种解决方案来解决此问题:
使用一次性设置,我只能执行一次设置,并将结果作为变量存储在NodeJS全局对象中。
示例:
// package.json
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/globalSetupFile.js"
}
// globalSetupFile.js
global.globalUser = createGlobalUser();
// testFile.spec.js
loginAsUser(global.globalUser.email, global.globalUser.password);