说明:本系列文章为个人笔记,如有不正确之处,请参考官方相关文档,如果错误发现,我会尽量更新修改。另外,以下内容不保证对于所有版本的编译器都正确,编译器的实现也可能有一些变化之处,具体参考官方文档。
更多说明请参考http://blog.youkuaiyun.com/gengshenghong/article/details/7034748中补充说明部分。
Summary:上一部分介绍了Intel编译器相关的代码覆盖工具的使用方法,对于codecov的选项只是稍微提示了一下,这里以几个关键功能来分析其它选项。
(1) “可视化”代码覆盖报告
这里的可视化报告,就是前面一部分的默认输出的html类型的报告了,一个CODE_COVERAGE.html为summary信息,链接到其它的文件中(CodeCoverage文件夹)。这里先继续讨论这种可视化报告的基本内容和一些关键选项,下一部分分析几个用于输出其它格式报告的一些选项。
1. 代码覆盖基础
这里只是提示一下,codecov的覆盖报告中,有文件覆盖报告、函数覆盖报告和基本块覆盖报告。(PS:关于测试中的代码覆盖,这里不详细介绍,相关的还有行覆盖等概念)。
2. 关于可视化报告结构
可视化报告,其中CODE_COVERAGE.html为summary信息,即top level coverage,显示的是所有的模块的报告,显示文件覆盖率、函数覆盖率和基本块覆盖率。通过其中的链接就可以进入到Individual Module Source View查看每一个模块(文件)的源代码的视图,其中会显示哪些代码或函数覆盖了,哪些代码或函数没有覆盖(用不同的颜色表示)。分别如下图所示:
3. 关于颜色
上一节已经介绍了一系列设置颜色的选项,具体每个选项设置什么颜色参考手册即可,这个比较容易理解。对于上图(默认配色),其中没有颜色的表示覆盖的代码,粉红颜色的表示是没有覆盖的代码。需要提示的一点是,要理解codecov大概是如何完成颜色显示的功能的:扫描源代码字符串,直到到达某一个位置,其被profile信息标记为基本块的开始,如果这个基本块的profile信息表明其coverage category(覆盖类别)改变了(比如前一个基本块是覆盖的,这一个没有覆盖,或者反之),那么codecov工具改变对应的HTML报告中这一部分的代码的显示颜色。所以,需要注意的是理解一些特殊部分的颜色,比如:基本块紧随后的注释行和括号}等(注释肯定不会被执行了)的颜色和其没有覆盖的块的颜色是一样的,当然,对于一个基本块内部的颜色,那么肯定是和基本块的颜色一样。大概理解一下下面这个截图的效果就行了(其中黄色是没有覆盖的基本块):
4.