什么“线应该通过测试sonarqube有足够的覆盖率”是什么意思?

时间:2017-04-28 15:17:39

标签: sonarqube automated-tests

我用SonarQube 6.3分析了一个项目,它给了我错误:

  

测试需要覆盖32行代码才能达到最小值   门槛覆盖率为65.0%

这与规则有关:

  

线条应具有足够的测试覆盖率

我想知道这条规则是否包含我所做的所有类型的测试,或者特定的测试,或者是否意味着SonarQube无法覆盖这些线路进行分析。

我问这个的原因是我根本没有测试,所以这个问题消息可能意味着SonarQube可以识别其他线路的某些测试,但事实并非如此呢?

1 个答案:

答案 0 :(得分:0)

从6.2开始,SonarQube能够识别代码文件中的“可执行行”,无论文件中是否有任何测试。您的分析仪还必须支持并提供该功能。我猜你正在使用一个提供这些数据的分析器版本,而这正是你在计算这些文件缺失覆盖范围的地方,这些文件不受单元测试的影响。

请注意,在添加此功能之前,情况看起来像这样

+--------------+-----------+-------+
|     File     | Cvd lines | Cvg % |
+--------------+-----------+-------+
| 100LineFile  |        75 |   75  |
+--------------+-----------+-------+
| Total        |        75 |   75  |
+--------------+-----------+-------+

+--------------+-----------+-------+
|     File     | Cvd lines | Cvg % |
+--------------+-----------+-------+
| 100LineFile  |        75 |   75  |
| 100LineFile2 |         0 |    -  |
+--------------+-----------+-------+
| Total        |        75 |   75  |
+--------------+-----------+-------+

因为任何单元测试未触及的文件在计算中被省略,所以给出了整体覆盖率的错误玫瑰色图片。 现在它看起来像这样:

+--------------+-----------+-------+
|     File     | Cvd lines | Cvg % |
+--------------+-----------+-------+
| 100LineFile  |        75 |   75  |
| 100LineFile2 |         0 |    0  |
+--------------+-----------+-------+
| Total        |        75 |   37.5|
+--------------+-----------+-------+