SonarSource简介
构建更好的软件的方法。通过在整个软件开发生命周期中支持代码质量, 帮助您的开发团队从创新的概念中受益,代理商sonarqube 规则, 同时将时间和精力集中在新功能上。的水泄漏范例
我们建议的代码质量的方法是什么?把它当作漏水的东西, 在你拖地板之前把漏水的东西修好!为什么?否则你只是在浪费你的时间和精力。对于代码质量, 同样的逻辑适用;在任何其他情况下, 您都应该在控制下获得新更改和添加代码的质量。一旦该漏洞得到控制, 代码质量将开始系统地改善。阅读更多漏水范例领yang授权收养和赋予
代码质量应该是每个开发人员的关注点, 而不仅仅是少数。一旦您切换到一个漏水的方法, 即新的代码是唯yi的焦点的方法, 开发人员将变得非常感兴趣的主题, 因为 '代码质量' 意味着他们的代码质量。如果您添加的能力是在一个非常短的反馈循环, 你得到的控制反转: 开发人员不仅解决问题, 但在其组织的代码质量的所有权, 因为它应该是在任何地方的情况。统一质量门
除非您在发布时强制执行质量门, 否则您没有到位的代码质量实践。质量门是在进入生产前经过验证的标准列表, 以确保应用程序符合质量要求。换言之, 这是内部质量的去/不去。采用漏水方法, 您可以为每个应用程序强制使用相同的质量闸门, 因为焦点将从应用程序中的遗留代码转移到新的或更新的内容。这使得代码质量成为开发过程的一个组成部分。促进代码管理应用程序组合 (APM)应用程序投资组合管理
泄漏范例创造了一个良性循环来提高代码质量, 但不处理风险。管理者应该能够对其投资组合中的现有风险做出决策。例如, 敏感的应用程序可能需要额外的精力来解决安全问题。这就是为什么, 他们需要有一个代表他们的应用程序组合装饰与相关的健康/风险因素。
SonarQube和JaCoCo的个人测试代码覆盖率
构建部分
这里不需要修改但是,您应该注意Maven Surefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,这是我们正在写的参考POM的相关部分:
<建立> <插件>
...
<插件>
<的groupId> org.apache.maven.plugins 的groupId>
<版本> 2.13 版本>
<结构>
<包含>
<包括> ** / * Test.java 包括>
<包括> ** / * Tests.java 包括>
包括>
<排除>
<排除> ** /它/ * IT.java 排除>
排除>
配置>
插件>
...
插件> 建造>
这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或TopLink增强功能时)。
依赖部分
在本节中,不需要进行任何更改。我们只想注意到,华南sonarqube 规则,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,并且明确地指出了本部分中的JaCoCo伪像,那么可以将其留下 - 至今没有确定任何冲突。无论如何,它不应该在这里需要,所以从这个部分删除它可能更安全。
档案部分
所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。后,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:
<轮廓>
<! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标
<建立>
<插件>
<插件>
<的groupId> org.apache.maven.plugins 的groupId>
<版本> 2.13 版本>
<结构>
<! - 与常规测试执行目标相同的配置 - >
由JaCoCo prepare-agent - >配置的<! - 加argLine参数
<包含>
<包括> ** / * Test.java 包括>
<包括> ** / * Tests.java 包括>
包括>
<排除>
<排除> ** /它/ * IT.java 排除>
排除>
<! - 每个测试覆盖所需的新配置 - >
<性能>
<属性>
<名称>听者名称>
<值> org.sonar.java.jacoco.JUnitListener 值>
属性>
属性>
配置>
插件>
插件>
建造>
<依赖性>
<依赖性>
<的groupId> org.codehaus.sonar-plugins.java 的groupId>
<版本> 2.3 版本>
<范围>测试范围>
依赖性>
依赖>
简档>
将SonarQube指标集成到TFS构建中 - 简介
2014年7月31日/ ANDYBDEV
我一直在努力将SonarQube整合到我们每周运行的TFS中。如果你不知道SonarQube是否检查出来。它是一个很好的方法来集中有关您的代码的信息,这有助于捕获和跟踪关注KPI的人的指标(如果我们必须让他们至少对他们的代码质量有积极的作用),同时给那些“它是一个中心的地方,可以看到他们可以改进的代码质量等问题。
以前,我们从TFS开发了一个单独的Jenkins构建阅读源,但是我们希望摆脱这个额外的构建,并且只需在TFS中执行一次 - 似乎有点浪费和耗时地整理Jenkins以及TFS。事实证明,我已经有了很好的时机(在写作的时候),近才有声纳可以处理微软测试结果和覆盖文件的上传(分别为.trx和.coverage) - http://docs.codehaus .ORG /显示/ SONAR / C%23 +插件。
方法 - 使用标准的TFS Build工具包
不幸的是,将SonarQube集成到TFS构建中并不是直接的过程。那里已经有可以为您进行扫描和上传方面的定制活动/2013/10/sonar-build-activity-for-tfs-updated/)。我不太喜欢自定义程序集,因为您需要创建一个项目来管理模板,并提供大量引用来删除所有的警告和错误,并且实际上允许您配置导入的活动,从那时起就成为一个需要从项目中编辑你的模板 - 我知道..它没有什么大不了的,但我宁愿把它作为一个简单的可编辑工作流程。然后,您需要将程序集提供给构建控制器,我希望避免需要这样做 - 加上我曾经遇到过这样的问题,以便与过去的托管Team Foundation Service一起工作,这在历史的上使我无法避免。
考虑到这些要点,代理商sonarqube 规则,我已经采取了一种方法,这意味着大多数工作可以使用标准活动在构建模板中完成,其余的工作可以在几个可以坐在源中的批处理文件中完成。
我会引导你完成这个过程。