Unit testing 在Jest中的每个测试之前运行全局测试设置
我试图在Jest测试套件中的每个测试之前执行一个测试设置函数。我知道我可以在单个测试文件中使用Unit testing 在Jest中的每个测试之前运行全局测试设置,unit-testing,jestjs,Unit Testing,Jestjs,我试图在Jest测试套件中的每个测试之前执行一个测试设置函数。我知道我可以在单个测试文件中使用beforeach来完成这项工作,但我希望对所有测试文件进行全局操作,而不必显式修改每个文件 我查看了一下,发现了一些本可以工作的配置:和,但它们似乎只运行了一次(在测试运行的最开始)。正如我所说,我需要在测试文件中的“each”it块之前运行它 这可能吗?您可以使用setupfileafterenv(它取代了setupTestFrameworkScriptFile,从jest版本24.x中弃用),它将
beforeach
来完成这项工作,但我希望对所有测试文件进行全局操作,而不必显式修改每个文件
我查看了一下,发现了一些本可以工作的配置:和,但它们似乎只运行了一次(在测试运行的最开始)。正如我所说,我需要在测试文件中的“each”it
块之前运行它
这可能吗?您可以使用
setupfileafterenv
(它取代了setupTestFrameworkScriptFile
,从jest版本24.x中弃用),它将在每次测试之前运行
// package.json
{
// ...
"jest": {
"setupFilesAfterEnv": ["<rootDir>/setupTests.js"]
}
}
作为@zzz答案的后续,最近的注释: 注意:
setupTestFrameworkScriptFile
被弃用,取而代之的是setupfileafterenv
现在,您的文件应该如下所示:
// package.json
{
// ...
"jest": {
"setupFilesAfterEnv": [
"<rootDir>/setupTests.js"
]
}
}
//package.json
{
// ...
“笑话”:{
“SetupFileAfterEnv”:[
“/setupTests.js”
]
}
}
设置文件afterenv
配置是一种方法,是的,您可以在该文件中的每个之前使用,它将在所有套装的每个测试中运行
// jest.config.js
module.exports = {
setupFilesAfterEnv: ['<rootDir>/tests/setupTests.ts']
}
试试看 我知道这一点都没有帮助,但我不认为有开玩笑的方法可以做到这一点。注意:这是可行的,但正如@Alvin Lee在下面指出的:“setupTestFrameworkScriptFile被弃用,取而代之的是setupFilesAfterEnv”对我不起作用。。。global.beforeach不是函数。@geoidesic使用setupFilesAfterEnv而不是setupTests(顾名思义,包含beforeach的测试环境将在那时设置)
// jest.config.js
module.exports = {
setupFilesAfterEnv: ['<rootDir>/tests/setupTests.ts']
}
// tests/setupTests.ts
beforeEach(() => {
console.log('before each')
})
afterEach(() => {
console.log('after each')
})