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 的开发者有所帮助。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/65bf0dadadd4f0e0ff8976b3