代码覆盖率数据概述
代码覆盖率数据提供了重要信息,有助于了解您的测试在执行代码方面的有效程度。 使用这些数据可以确定测试已经执行的代码量,然后精确标示出尚未执行的特定区域。
代码覆盖率数据既包括“代码覆盖率结果”窗口中显示的统计信息,也包括代码本身中的突出显示内容。 下面的文档列出和定义了代码覆盖率统计信息和源代码中的突出显示内容。
有关如何获取或查看代码覆盖率数据的信息,请参见如何:获取代码覆盖率数据。
代码块、代码行和部分行
代码覆盖率数据是根据测试运行过程中执行的代码块、代码行和部分行来计算的。 代码块是一条代码路径,它具有一个入口点、一个出口点和一组全部按顺序运行的指令。 当代码块到达决策点(如新的条件语句块、函数调用、异常引发、enter、leave、try、catch 或finally 构造)时,该代码块将结束。
从代码覆盖率角度而言,一行代码是一个可执行的代码行,其中不包括空白、注释、类型声明和命名空间声明。 一行代码可以包含多个代码块。 如果代码行包含多个代码块,测试运行过程仅执行了其中一部分,则将该代码行作为部分行来计算。
“代码覆盖率结果”窗口
若要确定您的测试是否执行了所需的代码量,请查看“代码覆盖率结果”窗口。 “代码覆盖率结果”窗口在程序集、命名空间、类和方法级别上显示项目中代码覆盖量的统计信息。 “代码覆盖率结果”窗口中的数据显示了测试执行的代码行和代码块总数及其所占百分比。
有关如何查看“代码覆盖率结果”窗口的信息,请参见如何:获取代码覆盖率数据。
代码覆盖率软件度量
下表列出了“代码覆盖率结果”窗口显示的代码覆盖率数据:
度量 |
说明 |
---|---|
已覆盖(行) |
显示测试已执行的代码行总数。 |
未覆盖(行) |
显示测试未执行的代码行总数。 |
已覆盖(% 行) |
显示测试已执行的代码行所占的百分比。 |
未覆盖(% 行) |
显示测试未执行的代码行所占的百分比。 |
已覆盖(块) |
显示测试已执行的代码块总数。 |
未覆盖(块) |
显示测试未执行的代码块总数。 |
已覆盖(% 块) |
显示测试已执行的代码块所占的百分比。 |
未覆盖(% 块) |
显示测试未执行的代码块所占的百分比。 |
部分覆盖(行) |
显示行中有代码块未执行的代码行总数。 |
部分覆盖(% 行) |
显示行中有代码块未执行的代码行所占的百分比。 |
源代码的覆盖率突出显示内容
若要在方法中定位特定代码路径,并确定测试运行过程是否已执行它们,请查看源代码中的代码覆盖率突出显示内容。 借助代码覆盖率突出显示内容,您还可以在单元测试方法中确定测试运行过程是否执行了某个特定测试。
您可以查看项目中每个方法的代码覆盖率突出显示内容。 代码覆盖率突出显示内容提供三种级别的突出显示,它们指示测试运行过程中已执行的特定代码块。 突出显示内容可以在所有方法中查看,包括单元测试方法。 在源代码突出显示内容中,每种颜色涵盖的个数与“代码覆盖率结果”窗口中的对应统计信息数一致。 例如,“代码覆盖率结果”窗口中的“部分覆盖(行)”统计信息,即应与源代码中浅褐色突出显示内容的数量一致。
源代码覆盖率突出显示内容的颜色代码
下表列出了源代码中显示的代码覆盖率突出显示内容的颜色代码:
颜色代码 |
说明 |
---|---|
浅蓝色 |
指示在测试运行过程中执行了整个代码行。 |
浅褐色 |
指示在测试运行过程中仅执行了代码行的部分代码块。 |
红棕色 |
指示在测试运行过程中未执行此行。 |