【发布时间】:2016-01-07 18:43:48
【问题描述】:
我的同事今天早上发现,在启用 Cobertura 的情况下编译项目会改变同一项目的声纳结果。
在这个特定项目中,我们使用sonar:sonar 运行构建,然后使用cobertura:cobertura sonar:sonar 再次运行它。
比较中的声纳结果现在显示,在没有 Cobertura 的情况下,我们有 5 个严重性的 7/78/153/24/0 违规,但使用 Cobertura,它会更改为 7/81/94/24/0,特别是发现 3 个新的严重违规和 15 个新的重大违规没有 Cobertura 就找不到。
最大的变化之一是,在没有 Cobertura 的情况下,有 60 次违反针对空方法(其中许多是构造函数)的规则,而使用 Cobertura 时只有 3 次被报告。
如果 Cobertura 只阻止发现违规行为,我们可以独立运行这两个,但由于只有启用 Cobertura 才能发现一些违规行为,因此我们似乎必须进行两次单独的声纳分析。
这是已知的交互吗?除了在单独的版本中执行 Cobertura 和 Sonar 之外,还有其他解决方法吗?并使用两组结果来获得最佳数据?
【问题讨论】:
-
新增的 3 个关键点是什么?
-
类不应按名称进行比较 公共枚举方法无条件设置其字段 Dodgy - 已知非空值的冗余空检查