我什么时候应该使用 setupFiles 而不是 setupFilesAfterEnv?

Aym*_*byk 19 jestjs

我看到 jest 中有两个配置选项,用于在每次测试之前运行一些代码:setupFilessetupFilesAfterEnv. 在我看来,这setupFilesAfterEnv提供了更多的灵活性(我可以使用jestbeforeEach等等......),所以我不明白在什么情况下setupFiles会更有用。有人可以提供一个您需要使用setupFiles而不是的示例setupFilesAfterEnv吗?

文档:https : //jestjs.io/docs/en/configuration#setupfiles-array

Ste*_*aek 21

我们可以从文档中看到setupFilessetupFilesAfterEnv之间的区别

最重要的区别可能是它何时运行。

setupFiles将被执行

在环境中安装测试框架之前。

setupFilesAfterEnv将被执行

在环境中安装测试框架之后。

这就是名称具有 AfterEnv 的原因。

我实际上在我的实际项目中同时使用了它们。

就我而言,我使用setupFiles来设置.env值,并使用setupFilesAfterEnv来设置 jest 配置,例如jest.setTimeout(70000)


>> 就我而言 >>>>>>>>>>>>>>>>>>>>>>>

开玩笑的配置文件

  setupFiles: ['<rootDir>/tests/settings/env-setup.ts'],
  setupFilesAfterEnv: ['<rootDir>/testSetupFile.js'],
Run Code Online (Sandbox Code Playgroud)

env-setup.ts

import dotenv from 'dotenv';
import path from 'path';

console.log(`============ env-setup Loaded ===========`);
dotenv.config({ path: path.resolve(process.cwd(), 'tests', 'settings', '.test.env') });
Run Code Online (Sandbox Code Playgroud)

测试设置文件.ts

// Some of the `jest` tests are very slow and cause
// timeouts on bitbucket pipeline
console.log(`============ testSetupFile Loaded ===========`);
jest.setTimeout(70000);

Run Code Online (Sandbox Code Playgroud)