SonarQube和JaCoCo的个人测试代码覆盖率
本文介绍了如何使SonarQube收集单个测试的测试代码覆盖率指标。代码覆盖工具通常产生一个报告,显示在给定测试会话期间执行的所有测试的组合效果的代码覆盖率(按行,分支等)。例如,当您在持续集成中运行单元测试时就是这种情况。在SonarQube和JaCoCo的帮助下,可以在单个测试用例级别(JUnit或TestNG中的测试方法)中收集覆盖度量。为了实现这一点,我们在这篇文章中显示了一些特殊的配置。
环境
以下过程已经使用SonarQube 4.1.2和4.3.2版本进行了验证,但它也适用于SonarQube 3.7.x(xin的LTS版本)。我们用于验证设置的应用程序代码是熟悉的Spring Pet Clinic应用程序,增强功能可支持Tomcat 7和Spring 3(请参阅此篇文章,以了解有关宠物诊suo需要更新的信息/ 2012/09/06 / petclinic-tomcat-7 /)该代码可以从存储库中的GitHub:https:///deors/deors.demos.petclinic
说明
一旦你知道如何连接所有的点,这些说明很简单。所有这些都是为Maven Surefire插件添加一些特定的配置(Surefire是插件,它是单元测试执行的任务,它支持JUnit和TestNG)。由于此具体配置不应影响常规单元测试执行,因此建议将所需配置包含在单独的配置文件中,仅在执行SonarQube分析时执行。我们一起来描述pom.xml文件中所需的更改。
SonarSource
5个工具可以帮助您编写更好的Java代码
在IDR解决方案方面,我们一直在寻找改进我们的Java PDF库和我们的PDF到HTML5转换器的方法。hao的方法是改进我们编写的Java代码,中国sonarqube 规则,我们使用一些有用的工具来帮助我们改进代码,也有助于提高生产力。
在本文中,我们将介绍我们在IDR Soluti中使用的5种的工具,广西sonarqube 规则,以及如何帮助Java Developers编写更好的代码。我还撰写了一篇针对更具体的领域的后续文章,这是一个帮助您进行Java性能调整的9种工具。
FindBugs的
umdFindbugsFindBugs是一个开放源代码程序,根据Lesser GNU公共许可证的条款分发,并以Java字节码而不是源代码运行。
该工具使用静态分析来帮助确定Java程序代码中的数百种不同类型的错误,包括空指针解引用,代理商sonarqube 规则,递归循环,Java库和死锁的不良用法。
FindBugs主要用于识别大量应用中的数百个严重缺陷,并且能够确定潜在错误的严重性,并分为四个等级:
1scariest
2scary
3troubling
4of concern.
关闭SonarQube中的旧版代码违规
一旦您设置了所有组件,您现在可以使用jsawk为所有现有的违规创建排除模式:
curl -XGET'http:// localhost:9000 / api / violation?depth = -1'| ./jsawk -a'return this.join(“﹨ n”)''return this.resource.key.split(“:”)[1] +“; *; [”+ this.line +“]”' |排序| uniq的
这将显示一个可以粘贴在“关闭违规”插件的文本区域中或将其作为文件签入存储库的列表。随着下一个分析过程,中国sonarqube 规则,您将希望看到零违规。当有人通过插入一行更改文件时,会再次显示违规行为,并且应该被修改。不幸的是,一些违规行为不是基于行的,并会产生一个行号'undefined'。目前我刚刚删除了这些手动,所以你仍然可能会看到一些违规。
结论
我提出了一种方法来将您的旧版代码重置为零违例。使用SonarQube 4.0,“切换违规关闭”插件的功能将在内核中使用,因此将更*使用。我仍然在寻找保持排除模式xin的jia方式。一旦有人必须修复现有文件的违规行为,则应删除该模式。
更新09.01.2014
从SonarQube 4开始,这种方法不再工作了。 SwitchOffViolati插件的一些功能已被移动到,但是排除违反行为是不可能的,也不会实现。开发商建议仅查看项目的趋势,而不是总体违规数量。这可以很好地使用差分。