Jest 是 Facebook 出品的一款现代化的 JavaScript 测试框架,被广泛应用于前端领域。在使用 Jest 的时候,配置文件是非常重要的一部分,因为它可以决定 Jest 的运行方式和测试覆盖范围等重要设置。在本篇文章中,我们将详细介绍 Jest 配置文件的常用配置项及其作用,帮助读者更好地理解和使用 Jest。
Jest 配置文件
在使用 Jest 进行测试时,我们需要在项目根目录下创建一个配置文件 jest.config.js
。该文件是一个使用 CommonJS 模块语法导出对象的 JavaScript 文件,其属性即对 Jest 运行环境的配置方式。
常用配置项及其作用
以下是 Jest 配置文件中常用的配置项及其作用:
testMatch
用于指定 Jest 等待进行测试的文件匹配模式。这个选项可以包含许多匹配模式,每个模式由一个字符串表达式表示。Jest 将会在这些匹配模式下找到测试文件,并执行它们。例如:
module.exports = { testMatch: ["<rootDir>/tests/**/*.test.js"] }
该配置项就是让 Jest 在项目根目录下的 tests
目录下寻找文件名以 .test.js
结尾的文件进行测试。
coveragePathIgnorePatterns
表示忽略哪些文件不参与测试覆盖率的计算。比如,我们可能在项目中使用了一些不需要进行测试的代码或文件,或者是一些库代码。这些文件在执行测试并计算覆盖率时不应该对结果造成影响。例如:
module.exports = { coveragePathIgnorePatterns: ["/node_modules/", "config.js"] }
该配置项就是告诉 Jest 忽略所有 /node_modules/
目录下的文件,以及名为 config.js
的文件。
setupFilesAfterEnv
表示需要在所有测试文件运行之前执行的模块文件列表。这些模块文件中定义的函数会被自动地载入内存,用于提供自定义设置。这个配置项可以方便我们在测试前执行一些准备工作,例如载入一些公共的测试工具库,定义一些全局函数等等。例如:
module.exports = { setupFilesAfterEnv: ["<rootDir>/tests/setupTests.js"] }
该配置项就是告诉 Jest 在所有测试运行之前,先运行 setupTests.js
文件中的代码。
moduleNameMapper
表示用于承载自定义的模块匹配规则。这个配置项可以用于在一些模块导入时,自动将其转换成后缀或其他格式的模块。例如:
module.exports = { moduleNameMapper: { '^@/(.*)$': '<rootDir>/src/$1' } }
该配置项就是告诉 Jest 对所有以 @/
开头的模块路径进行转换,将其转换为项目根目录下的 src
目录中对应路径的模块。
示例代码
以下是一个 Jest 配置文件的完整示例代码:
module.exports = { testMatch: ["<rootDir>/tests/**/*.test.js"], coveragePathIgnorePatterns: ["/node_modules/", "config.js"], setupFilesAfterEnv: ["<rootDir>/tests/setupTests.js"], moduleNameMapper: { '^@/(.*)$': '<rootDir>/src/$1' } }
通过以上配置文件,我们可以让 Jest 自动寻找项目根目录下的 tests
目录下的所有 .test.js
文件,并忽略所有 /node_modules/
目录下的文件及名为 config.js
的文件进行覆盖率计算。在测试前,Jest 会先执行 setupTests.js
文件中的代码,对测试环境进行设置。同时,Jest 还会自动将以 @/
开头的路径转换为项目根目录下的 src
目录中相应路径的模块。这些配置项的组合可以大幅度提高我们的开发效率和测试质量。
总结
在本文中,我们详细介绍了 Jest 配置文件的常用配置项及其作用。这些配置项可以很好地帮助我们定义测试文件的匹配方式、覆盖范围、运行前的准备工作等,从而提高测试的效率和覆盖范围。在实际项目开发中,我们可以根据实际需要,自由地配置 Jest 的选项,以达到最佳的测试效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ab5ea848841e9894731638