【发布时间】:2014-06-23 13:54:28
【问题描述】:
我们从合作伙伴处获得了一个 Java 应用源代码,但它不包含测试代码。
我们想针对代码运行声纳 qube;但是根据我们的标准质量配置文件(PMD/Findbugs 等),技术债务会因没有测试覆盖率而出现偏差。我尝试禁用覆盖规则,或者将覆盖率设置为 0,但这只会扼杀一切,没有问题,没有技术债务或对代码有用的反馈。
谁能提出一个规则集或机制,使我们能够对代码运行声纳报告并保留一些与技术债务相关的有用反馈?除了写一个新插件....
【问题讨论】:
-
禁用覆盖规则并重建项目应该可以解决问题。你重建了吗?
-
是的;禁用覆盖规则“单元测试的分支覆盖率不足”和“单元测试的行覆盖率不足”;重建项目,我们得到 0 个问题、0 个安全违规和 0 个技术债务。如果我不知道更好,我会认为这段代码写得很好......
-
肯定有问题,检查构建日志是否有提示为什么没有运行静态分析。您是否致电
mvn sonar:sonar而不仅仅是mvn verify? (如果是 Maven) -
这是通过 sonar-runner 完成的;而不是 mvn 插件。构建似乎没有任何问题......
-
所以,分辨率原来是这样。删除项目。删除我已经配置和弄乱的定制质量配置文件。重建项目并针对默认配置文件运行声纳。重新创建质量配置文件(它最初来自另一个项目)。将项目添加到新配置文件。重建应用程序并针对新配置文件运行声纳。然后删除确定的覆盖规则,重新运行构建,一切都很好......技术债务有所减少,因为没有考虑覆盖范围。
标签: java code-coverage sonarqube technical-debt