初学 Jest,全面解读 Jest 配置文件 参数详解

Jest 是一款由 Facebook 开发的 JavaScript 测试框架,它能够帮助开发者编写高效、可靠的测试用例。在使用 Jest 进行测试时,我们需要配置一些参数,以便 Jest 能够正确地运行我们的测试用例。本文将全面解读 Jest 配置文件,并详细介绍每个参数的作用。

Jest 配置文件

Jest 配置文件是一个名为 jest.config.js 的 JavaScript 文件,它包含了 Jest 运行测试所需的所有配置信息。在项目根目录下创建 jest.config.js 文件即可开始配置 Jest。

以下是一个简单的 Jest 配置文件示例:

module.exports = {
  testEnvironment: 'node',
  testMatch: ['**/__tests__/**/*.js?(x)', '**/?(*.)+(spec|test).js?(x)'],
  verbose: true,
};

在上面的示例中,我们配置了 Jest 的测试环境为 Node.js,测试文件匹配模式为以 .test.js.spec.js 结尾的文件,以及开启了详细输出模式。

下面,我们将详细介绍 Jest 配置文件的各个参数。

参数详解

testEnvironment

该参数指定了 Jest 运行测试所使用的测试环境,默认值为 jsdom,即浏览器环境。除了浏览器环境外,Jest 还支持 Node.js 环境、jsdom 环境等。例如,我们可以将 testEnvironment 设置为 node,以便在 Node.js 环境下运行测试用例:

module.exports = {
  testEnvironment: 'node',
};

testMatch

该参数指定了 Jest 匹配测试文件的模式。默认情况下,Jest 会匹配所有 *.test.js*.spec.js 文件。我们可以通过修改 testMatch 参数来自定义测试文件匹配模式。例如,我们可以设置只匹配 __tests__ 目录下的测试文件:

module.exports = {
  testMatch: ['**/__tests__/**/*.js?(x)'],
};

verbose

该参数用于控制 Jest 输出的详细程度。默认情况下,Jest 只输出测试结果的总结信息。我们可以将 verbose 参数设置为 true,以便在控制台中输出更详细的测试结果信息:

module.exports = {
  verbose: true,
};

testPathIgnorePatterns

该参数用于指定 Jest 忽略的测试文件路径。默认情况下,Jest 会忽略 node_modules 目录下的所有文件。我们可以通过修改 testPathIgnorePatterns 参数来自定义忽略的文件路径。例如,我们可以忽略 __mocks__ 目录下的文件:

module.exports = {
  testPathIgnorePatterns: ['<rootDir>/__mocks__/'],
};

testTimeout

该参数用于指定 Jest 执行单个测试用例的超时时间。默认情况下,Jest 会将单个测试用例的超时时间设置为 5 秒。我们可以通过修改 testTimeout 参数来自定义超时时间。例如,我们可以将超时时间设置为 10 秒:

module.exports = {
  testTimeout: 10000,
};

transform

该参数用于指定 Jest 对文件进行转换的方式。默认情况下,Jest 会对 JavaScript 文件使用 Babel 进行转换。我们可以通过修改 transform 参数来自定义文件转换方式。例如,我们可以使用 TypeScript 转换器对 .ts 文件进行转换:

module.exports = {
  transform: {
    '^.+\\.ts$': 'ts-jest',
  },
  testMatch: ['**/*.test.ts'],
};

moduleNameMapper

该参数用于指定 Jest 对模块的路径进行映射的方式。默认情况下,Jest 会将 import 'module-name' 中的 module-name 映射为 node_modules/module-name。我们可以通过修改 moduleNameMapper 参数来自定义模块路径的映射方式。例如,我们可以将 @ 映射为 src 目录:

module.exports = {
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1',
  },
};

setupFilesAfterEnv

该参数用于指定 Jest 运行测试前需要执行的脚本文件。我们可以在该文件中进行测试前的一些准备工作,例如初始化测试环境、mock 某些模块等。例如,我们可以在 setupTests.js 文件中初始化测试环境:

module.exports = {
  setupFilesAfterEnv: ['./setupTests.js'],
};

coverageReporters

该参数用于指定 Jest 输出代码覆盖率报告的方式。默认情况下,Jest 会输出 HTML 和 JSON 格式的覆盖率报告。我们可以通过修改 coverageReporters 参数来自定义输出方式。例如,我们可以只输出 HTML 格式的覆盖率报告:

module.exports = {
  coverageReporters: ['html'],
};

总结

本文介绍了 Jest 配置文件的各个参数,并详细解释了每个参数的作用。通过合理配置 Jest 配置文件,我们可以轻松地编写高效、可靠的测试用例。希望本文对初学 Jest 的开发者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bf0dadadd4f0e0ff8976b3