Jest 的 coverage 配置中可以使用 collectCoverageFrom
来指定要收集覆盖的文件和目录,可以通过下面的步骤来避免 Jest 报告未更改的文件的覆盖范围:
coveragePathIgnorePatterns
选项,并将其设置为正则表达式,表示需要忽略收集覆盖范围的文件和目录。例如,假设你有一个名为 src/utils
的目录,其中包含一些帮助函数和实用程序,不应该在代码覆盖报告中出现,可以将 coveragePathIgnorePatterns
配置设置为:
{
"coveragePathIgnorePatterns": [
"/node_modules/",
"/src/utils/"
]
}
--changedSince
选项来仅运行发生更改的测试,以减少测试的运行时间。但是,如果一个测试文件包含从未更改过的文件的引用,它会重复报告这些文件的代码覆盖范围。为了解决这个问题,可以使用 Jest 的 --coverage
选项来强制 Jest 收集覆盖范围,并且只保留更改的文件的覆盖范围。这样可以避免未更改的文件在覆盖报告中出现。
{
"scripts": {
"test": "jest",
"test:coverage": "jest --coverage"
}
}
在使用 --changedSince
选项运行测试时,只需运行:
npm run test -- --changedSince=master
而在生成代码覆盖报告时,则需要