如何将Jest文本覆盖率报告输出至coverage目录的.txt文件?
如何让Jest的文本覆盖率报告同时输出到控制台和文件
当然可以实现这个需求!因为Jest确实兼容所有Istanbul报告器,我们可以通过在package.json的Jest配置里给报告器添加自定义选项,来指定文本报告的输出文件。
方法一:直接在coverageReporters中配置输出文件
修改你的package.json中的Jest配置,将text报告器以对象形式配置,指定输出文件和是否同时输出到控制台:
{ "name": "your-project", "jest": { "coverageDirectory": "./coverage", "coverageReporters": [ "json", { "name": "text", "file": "full-coverage.txt", "stdout": true }, { "name": "text-summary", "file": "coverage-summary.txt", "stdout": true } ] } }
配置说明:
name: 指定要使用的Istanbul报告器(这里是text或text-summary)file: 指定输出的文件名,文件会生成在你配置的coverageDirectory目录下(也就是./coverage/full-coverage.txt)stdout: true: 确保报告内容同时打印到控制台和写入文件,如果省略这个选项,有些报告器可能只会写入文件而不在控制台输出
方法二:使用自定义Istanbul报告器(进阶)
如果需要更复杂的输出格式,你还可以安装第三方Istanbul报告器,然后在coverageReporters中引用它们,同样可以配置输出文件。不过对于你的需求来说,方法一已经完全足够了。
验证配置
运行你的测试命令(比如npm test -- --coverage)之后,去./coverage目录下看看,你会发现生成了指定的文本文件,同时控制台也会正常打印覆盖率信息。
内容的提问来源于stack exchange,提问作者TFischer
相关产品推荐
相关产品推荐

