在Jest中的每个测试之前运行全局测试设置

时间:2018-02-10 16:26:24

标签: unit-testing jestjs

我正在尝试在我的Jest测试套件中的每次单个测试之前执行测试设置功能。我知道我可以使用beforeEach在一个测试文件中完成此操作,但我希望全局为我的所有测试文件而不必显式修改每个文件。

我查看了jest configuration file,并注意到了一些认为可行的配置:globalSetupsetupFiles,但它们似乎只运行一次(从一开始)试运行)。就像我说的,我需要在测试文件中的“每个”it块之前运行它。

这可能吗?

3 个答案:

答案 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']
}

尝试一下!