在研发代码覆盖率测试工具的时候,通常除了代码覆盖数据收集模块之外,一般还要研发前端展示的部分以展现代码覆盖分析报告,通常会为每一个文件增加行染色,类似于jacoco这种形式。
然而代码覆盖报告实际出来的行染色,会出现许多正常代码行没有着色的情况。这是因为编程语言认为的“行”和本身我们在文本编辑器打出的”行“是不一样的。编译出来的“行”实际上是一段操作,比如我们定义一个函数的时候,编译器认为我们执行的操作有包括function xxx那一行,于是就有一种情况——我们实际没有运行过这个函数,但由于定义被覆盖,因此出现function xxx染绿,而函数体染红的现象。从用户的角度而言,用户如果对代码编译这块并不熟悉的话,就会造成理解上的偏差。
因此考虑工作成本,如果有必要的话,需要对代码覆盖数据进行修改,从而展现更好的代码行染色效果。以lua为例,可以采用这样的方法: