我正在使用SonarQube 4.5.4,我想知道单元测试的测试字段中度量的公式 - 请考虑下面的图像。我得到你在下面找到的价值。看完SonarQube's documentation on metrics后,我仍感到困惑。
我只找到单位测试成功密度%。设ρ为密度,m u 单位测试次数,m e 单位测试误差数和m f 单位数测试失败。然后我们
这是对的吗?其他值的公式是什么?
答案 0 :(得分:1)
到目前为止,我唯一能回答的是你的公式不正确,因为你误读了括号。
正确的公式是,带有您的记号:
屏幕截图中的其他值在文档中定义(其中“Coverage”是您的“单元测试覆盖率”):
条件覆盖率=(CT + CF)/(2 * B)
线路覆盖范围= LC / EL
覆盖率=(CT + CF + LC)/(2 * B + EL),其中
CT =至少一次评估为“真”的条件 CF =至少一次评估为“假”的条件 LC =包含线= lines_to_cover - uncovered_lines
B =条件总数
EL =可执行行的总数(lines_to_cover)
这些数字介于0和1之间,乘以100得到百分比。
答案 1 :(得分:1)
UT Coverage(或coverage)的计算方法如下(注意所有变量都是Double
):
Double utCoverage = ((((totalConditions - totalUncoveredConditions) + totalLines) - totalUncoveredLines) / (totalConditions + totalLines)) * 100;
使用conditions_to_cover
,uncovered_conditions
,lines_to_cover
和uncovered_lines
指标作为值。
IT覆盖率和总体覆盖率使用相同的公式计算,但要使用的指标不同。
对于IT覆盖范围,您必须使用it_conditions_to_cover
,it_uncovered_conditions
,it_lines_to_cover
和it_uncovered_lines
指标。
要获得整体覆盖率,您必须使用overall_conditions_to_cover
,overall_uncovered_conditions
,overall_lines_to_cover
和overall_uncovered_lines
指标。
如果您正在寻找条件覆盖率公式,请点击此处:
Double conditionCoverage = ((totalConditions - totalUncoveredConditions) / totalConditions) * 100;
以下是线路覆盖:
Double lineCoverage = ((totalLines - totalUncoveredLines) / totalLines) * 100;
同样,您必须使用正确的指标来提供公式(参见上文。)
希望它有所帮助。
注意:这取自我的合并pdf报告生成工具。它已经成功地测试了代表超过2百万NCLOC并用于制作每周报告的项目(换句话说,我非常有信心它的工作原理。)