rto*_*res 5 unit-testing jestjs
我正在尝试在Jest测试套件中的每个测试之前执行测试设置功能。我知道我可以beforeEach在单个测试文件中完成此操作,但是我想在所有测试文件中全局执行此操作,而不必显式修改每个单个文件。
我查看了jest的配置文件,发现有两个配置可能起作用:globalSetup和setupFiles,但是它们似乎只能运行一次(在测试运行的开始)。就像我说的那样,我需要it在测试文件中的“每个” 块之前运行它。
这可能吗?
您可以使用setupTestFrameworkScriptFile它将在每次测试之前运行
// package.json
{
// ...
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/setupTests.js"
}
}
Run Code Online (Sandbox Code Playgroud)
在中setupTests.js,您可以直接编写:
global.beforeEach(() => {
...
});
global.afterEach(() => {
...
});
Run Code Online (Sandbox Code Playgroud)
setupFilesAfterEnv配置是要走的路,是的,您可以beforeEach在该文件中使用它,它将在所有套装的每个测试中运行。
// jest.config.js
module.exports = {
setupFilesAfterEnv: ['<rootDir>/tests/setupTests.ts']
}
Run Code Online (Sandbox Code Playgroud)
// tests/setupTests.ts
beforeEach(() => {
console.log('before each')
})
afterEach(() => {
console.log('after each')
})
Run Code Online (Sandbox Code Playgroud)
试试看!
就像@zzz的答案的后续一样,有关配置Jest的最新文档也指出:
注意:
setupTestFrameworkScriptFile不推荐使用setupFilesAfterEnv。
所以现在,您的文件应如下所示:
// package.json
{
// ...
"jest": {
"setupFilesAfterEnv": [
"<rootDir>/setupTests.js"
]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4390 次 |
| 最近记录: |