- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经阅读了 Jest 文档,我认为它们按此顺序运行。我还了解到 globalSetup 在不同的进程中运行,因此不与常规测试套件共享任何范围,而是与 globalTeardown 共享任何范围,因此这将是启动测试数据库服务器的好地方。
无论如何,我不清楚我是否做对了,以及我应该使用其他的做什么。
最佳答案
globalSetup
导出 async
的模块的路径将在一切之前运行一次的函数。此处定义的全局变量只能在 globalTeardown
中读取.
通常,模拟出任何依赖关系更有意义,但如果您别无选择,只能启动数据库或其他在测试期间绝对必须运行的外部服务,globalSetup
将是这样做的地方。setupFiles
/setupFilesAfterEnv
setupFiles
是将在每个测试文件之前和安装测试框架之前运行一次的模块列表。setupFilesAfterEnv
是将在每个测试文件之前但在环境中安装测试框架之后运行一次的模块列表。
通常 setupFilesAfterEnv
是在每个测试文件之前运行的任何设置代码的正确位置。仅使用 setupFiles
如果您有特定原因需要在安装测试框架之前运行代码。
你可以想到setupFilesAfterEnv
作为全局beforeAll
.
如果必须在每个测试文件的开头执行某些操作(例如:configuring the Enzyme adapter),那么在 setupFilesAfterEnv
中执行一次是有意义的。文件。beforeAll
Jest
将运行所有 beforeAll
在运行其他任何东西之前在测试文件中运行一次。
使用beforeAll
对于必须在一个特定测试文件的开头运行一次的代码。
例子
包.json
{
...
"jest": {
"globalSetup": "./globalSetup.js",
"globalTeardown": "./globalTeardown.js",
"setupFiles": ["./setupFile.js"],
"setupFilesAfterEnv": ["./setupFileAfterEnv.js"]
}
}
globalSetup.js
module.exports = async () => {
console.log('in globalSetup');
global.GLOBALSETUP = 'globalSetup';
};
globalTeardown.js
module.exports = async () => {
console.log('in globalTeardown');
console.log(global.GLOBALSETUP);
};
安装文件.js
console.log('in setupFile');
global.order = [];
global.order.push(1);
setupFileAfterEnv.js
console.log('in setupFileAfterEnv');
global.order.push(2);
测试.js
beforeAll(() => {
console.log('in beforeAll');
global.order.push(3);
});
test('order', () => {
expect(global.GLOBALSETUP).toBeUndefined(); // SUCCESS
expect(global.order).toEqual([1, 2, 3]); // SUCCESS
});
输出
Determining test suites to run...in globalSetup
console.log
in setupFile
at Object.<anonymous> (setupFile.js:1:98)
console.log
in setupFileAfterEnv
at Object.<anonymous> (setupFileAfterEnv.js:1:1)
console.log
in beforeAll
at Object.<anonymous>.beforeAll (src/test.js:3:11)
PASS src/test.js
✓ order (4 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.658 s, estimated 1 s
Ran all test suites.
in globalTeardown
globalSetup
Watch Usage: Press w to show more.
关于jestjs - Jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66736782/
我正在使用 @angular-builders/jest为了在测试 Angular 项目时用 Jest 代替业力。有 2 个库我喜欢为开 Jest 获得额外的匹配器:jest-extended和 @t
在 Webstorm 中,我使用 jest 进行单元测试,并使用 expect.extend() 创建了一个扩展。此代码在 {projectDir}./tests/jest-helpers.js 和我
像这样在 jest.config.js 中添加 setupFilesAfterEnv 之后: module.exports = { preset: 'ts-jest', testEnv
像这样在 jest.config.js 中添加 setupFilesAfterEnv 之后: module.exports = { preset: 'ts-jest', testEnv
Option "setupTestFrameworkScriptFile" was replaced by configuration "setupFilesAfterEnv", which supp
我已经阅读了 Jest 文档,我认为它们按此顺序运行。我还了解到 globalSetup 在不同的进程中运行,因此不与常规测试套件共享任何范围,而是与 globalTeardown 共享任何范围,因此
我是一名优秀的程序员,十分优秀!