maven配置JaCoCo以及Test Report的一些说明
文章目錄
由于软件测试实验的需要所以配置了一下jacoco
来查看测试代码覆盖率并学习了一下jacoco,记了一下笔记留给将来的自己。
配置Jacoco Maven Plugin
目的
我们用Jacoco
的两个目的
- 它使我们能够访问记录执行覆盖数据的JaCoCo runtime agent
- 它能够生成代码覆盖率报告通过JaCoCo runtime agent
JaCoCo Maven plugin
我们可以在pox.xml中引入JaCoCo Maven plugin插件
|
|
Test Report文件位置
Jacoco Report 说明
Branches(分支语句)
JaCoCo将会计算所有的if
和switch
分支语句的覆盖率。它将会计算出这个分支所有执行或者错过的总数。
在具体的分支语句处JaCoCo用钻石给我们标出
- No coverage: 该行中没有分支已经执行
红钻石
- Partical coverage: 改行仅有部分分支已经被执行
黄钻石
- Full coverage: 改行中所有分支都已经被执行
绿钻石
Lines
JaCoCo可以计算每一行的被覆盖的情况。JaCoCo认这一行至少有一条指令被执行则认为这一行别执行过了。
- No coverage: 这一行没有执行过
红色背景
- Partical: 这一行仅有部分指令被执行
黄色背景
- Full coverage: 这一行所有的指令都被执行了
绿色背景
Cyclomatic Complexity(环路复杂度)
对于环路复杂度具体用处将不再解释
JaCoCo会计算出每个非抽象方法的环路复杂度,和类,包的总的环路复杂度。
comlexity非常重要。因为它指出这些单元测试将会覆盖软件的具体的一部分
环路复杂度的定义是将一个方法的控制流图转化为有向图:
v(G) = E - N + 2
E是边数,N是节点数. JaCoCo用如下的等效方程计算环路复杂度,其中B是此方法中的所有分支数,D是所有的decision points:
v(G) = B - D + 1
参考文献
Jacoco覆盖率工具使用之maven篇
Coverage Counters
Creating Code Coverage Reports for Unit and Integration Tests With the JaCoCo Maven Plugin
Unit Test Code Coverage With Maven And Jacoco
如何用maven运行特定的test case