sonarqube和jacoco的个人测试代码覆盖率
本文介绍了如何使sonarqube收集单个测试的测试代码覆盖率指标。代码覆盖工具通常产生一个报告,显示在给定测试会话期间执行的所有测试的组合效果的代码覆盖率按行,分支等。例如,中国sonarqube 中文,当您在持续集成中运行单元测试时就是这种情况。在sonarqube和jacoco的帮助下,可以在单个测-例级别junit或testng中的测试方法中收集覆盖度量。为了实现这一点,我们在这篇文章中显示了一些特殊的配置。
环境
以下过程已经使用sonarqube 4.1.2和4.3.2版本进行了验证,但它也适用于sonarqube 3.7.xxin的lts版本。我们用于验证设置的应用程序代码是熟悉的spring pet clinic应用程序,增强功能可支持tomcat 7和spring 3请参阅此篇文章,以了解有关宠物诊suo需要更新的信息:https://deors.wordpress.com/ 2012/09/06 / petclinic-tomcat-7 /该代码可以从存储库中的github:https://github.com/deors/deors.demos.petclinic
说明
一旦你知道如何连接所有的点,这些说明很简单。所有这些都是为maven surefire插件添加一些特定的配置surefire是插件,它是单元测试执行的任务,它支持junit和testng。由于此具体配置不应影响常规单元测试执行,因此建议将所需配置包含在单独的配置文件中,仅在执行sonarqube分析时执行。我们一起来描述pom.xml文件中所需的更改。
sonarqube中的旧版代码
虽然我不相信将数字放在源代码上,sonarqube以前称为sonar在开发过程中可能是一个非常有用的工具。它对您的团队执行一致的风格,已经发现了几个可能的错误,并且是一个-的工具:您可以浏览-行为,看看为什么某个表达式或代码块可能是一个问题。
为了-您的代码库保持一致状态,您还可以直接执行代码检入的任何-行为。其中一个问题是很多项目不是绿色项目你有很多现有的代码。如果您的-号码已经-,很难判断是否引入了新的-行为。
在这篇文章中,我将向您展示如何从现有代码的零违反行为开始,sonarqube 中文,而不用触摸来源,jens schauder在他的-演讲中使用legacy teams的灵感来启发它。我们将根据文件中的行忽略所有-行为,因此如果有人触及该-行为将再次显示的文件,开发人员将负责修复旧版-行为。
关闭-插件
我们正在使用sonarqube的关闭-插件。可以为问题配置不同的排除模式。您可以为代码块定义正则表达式,这些代码块应该被忽略,或者在所有文件或行基础上停用-。
对于现有代码,您想忽略某些文件和行的所有-。这可以通过在文本区域中插入这样的方式来完成排除模式:
de.fhopf.a的kka.actor.indexingactor; pmd:signaturedeclarethrowsexception; [23]
这将排除在indexingactor类的第23行中抛出原始异常的-。再次分析代码时,这种-将被忽略。
通过api检索-
除了漂亮的仪表板之外,sonarqube还提供了一个可用于检索项目-的api。如果您不希望查找代码库中的所有现有-行为,并手动插入,您可以使用它自动生成排除模式。所有这些-都可以在/ api /-找到,例如http://本地主机:9000 / api /违例。
我确定还有其他方法可以做,但是我使用jsawk来解析json响应在ubuntu上,你必须安装spidermonkey而不是默认的js解释器。你必须自己编译,而且我必须使用一个特定的版本。叹了口气。
将sonarqube指标集成到tfs构建中 - 简介
所需步骤概述
这里有很多步骤,中国sonarqube 中文,有很多-,所以我将分解这几个博客文章主要是:
使tfs输出所需的测试和覆盖结果文件。
设置您的项目使用声纳。
将“sonar runner”整合到您的构建中。
所展示的解决方案-满足我正在尝试实现的目的,但您可能希望重新排列几个步骤来适应您的场景。 将围绕这些步骤进行一些讨论,以帮助您了解我所做的任何决定,并提供一些背景,sonarqube 中文,但如果您感兴趣的是如何做到这一点,然后忽略此文本,只需按照步骤。
祝你-与你的整合。
部分 - 使tfs输出所需的测试和覆盖结果文件。
第2部分 - 设置您的项目使用声纳。
第3部分 - 将“sonar runner”整合到您的构建中。
|