执行多组Racket测试时raco cover生成的覆盖率报告被覆盖,如何合并?
Racket cover工具多轮覆盖率报告合并方案
方案1:单次执行全量目标文件(推荐)
你可以在一次raco cover命令中传入所有需要统计覆盖率的文件,工具会自动合并所有执行路径的覆盖率数据,生成包含所有文件、共享依赖全量覆盖信息的报告,不会出现数据覆盖问题:
raco cover hello.rkt bye.rkt
方案2:分批次执行后合并数据
如果测试必须分批次运行(比如运行环境有差异、用例执行条件冲突),可以通过导出+合并原始覆盖率数据的方式实现:
- 执行第一批测试,导出覆盖率原始数据到独立文件,不生成HTML报告:
raco cover --dump coverage-hello.dat hello.rkt - 执行第二批测试,同样导出独立的原始数据文件:
raco cover --dump coverage-bye.dat bye.rkt - 合并所有原始数据文件,生成统一的覆盖率报告:
raco cover --merge coverage-hello.dat --merge coverage-bye.dat
注意事项
- 合并操作会自动叠加多轮执行命中的代码路径,共享依赖的覆盖率会统计所有批次的执行结果,最终生成的
index.html会包含所有涉及文件的覆盖率信息 - 如果需要合并更多批次的覆盖率,只需要每批次导出独立的dat文件,合并时通过多个
--merge参数传入所有dat文件即可
内容的提问来源于stack exchange,提问作者Alex028502
相关产品推荐
相关产品推荐

