我正在尝试在我的Jest测试套件中的每次单个测试之前执行测试设置功能。我知道我可以使用beforeEach
在一个测试文件中完成此操作,但我希望全局为我的所有测试文件而不必显式修改每个文件。
我查看了jest configuration file,并注意到了一些认为可行的配置:globalSetup
和setupFiles
,但它们似乎只运行一次(从一开始)试运行)。就像我说的,我需要在测试文件中的“每个”it
块之前运行它。
这可能吗?
答案 0 :(得分:6)
您可以使用在每次测试之前运行的setupTestFrameworkScriptFile
// package.json
{
// ...
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/setupTests.js"
}
}
在setupTests.js
中,您可以直接写:
global.beforeEach(() => {
...
});
global.afterEach(() => {
...
});
答案 1 :(得分:2)
作为对@zzz答案的后续,最近的documentation on Configuring Jest指出:
注意:不赞成使用
setupTestFrameworkScriptFile
,而推荐使用setupFilesAfterEnv
。
现在,您的文件应如下所示:
// package.json
{
// ...
"jest": {
"setupFilesAfterEnv": [
"<rootDir>/setupTests.js"
]
}
}
答案 2 :(得分:0)
$ ./bin/icaophonetic
Enter a word: apple
Phoenetic version is: Alpha Papa Papa Lima Echo
配置是解决方法,是的,您可以在该文件中使用setupFilesAfterEnv
,它将在所有套装的每次测试中运行。
beforeEach
// jest.config.js
module.exports = {
setupFilesAfterEnv: ['<rootDir>/tests/setupTests.ts']
}
尝试一下!