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