- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在跨多个虚拟机运行自定义并行系统测试,并使用 jacoco 代理对我们编译的应用程序执行运行时分析。这些代理中的每一个都将生成自己的 report.exec,并具有相应的覆盖范围,我们想要一种方法来表示整个项目(在 SONAR 中)的整体“集成测试”覆盖范围。
这项工作仍处于规划阶段,因此我正在尽最大努力制定路线图。我知道 ant/maven 构建使报告合并变得容易,但是由于我们测试环境的性质,要求使用 jacoco agent 生成运行时覆盖率。
我到处搜索适用于这种情况的解决方案,但似乎几乎所有属于此 jacoco/sonar 类别的问题都有其独特的条件,而且几乎没有人对使用 jacoco 代理有任何兴趣.
代理将以 tcpserver 模式运行,主客户端负责编排转储和报告输出。如果此客户端配置为输出到单个文件,这些报告是否会自动附加/合并为一个文件?是否存在用于合并多个覆盖率报告的 API 或独立项目,我可以将其集成到不依赖于 ant 或 maven 的客户端中?
或者,是否有 SONAR 配置来接受这种性质的多个报告并通过代码行合并它们的覆盖范围?在父 pom.xml 中定义每个单独的报告,或者只是给它一个包含整个集合的文件夹的路径,然后让 SONAR 对其进行排序?
我愿意接受这个问题没有简单的解决方案,但是除了必须编写我自己的合并功能之外的任何事情都会真正帮助这个项目起步。
E:可能值得一提的是,我们不会生成任何实际的 HTML/XML/等。报告,只是我们将提供给 SONAR 的可执行文件。
最佳答案
如果您使用的是 Gradle,则必须先 merge the Jacoco execution数据,然后告诉 sonarqube 使用它而不是每个子模块生成的单独的 exec
文件。
这是它的样子:
def allTestCoverageFile = "$buildDir/jacoco/allTestCoverage.exec"
sonarqube {
properties {
property "sonar.projectKey", "your.org:YourProject"
property "sonar.projectName", "YourProject"
property "sonar.jacoco.reportPaths", allTestCoverageFile
}
}
task jacocoMergeTest(type: JacocoMerge) {
destinationFile = file(allTestCoverageFile)
executionData = project.fileTree(dir: '.', include:'**/build/jacoco/test.exec')
}
task jacocoMerge(dependsOn: ['jacocoMergeTest']) {
// used to run the other merge tasks
}
subprojects {
sonarqube {
properties {
property "sonar.jacoco.reportPath", allTestCoverageFile
}
}
}
简而言之:
allTestCoverageFile
)。sonar.jacoco.reportPaths
)。但请注意,我们还必须在子项目关闭时执行此操作。这是非常重要的。不要错过。JacocoMerge
(Jacoco 插件的孵化类)扩展而来,它合并了所有项目的所有测试覆盖率报告(executionData
) 到我们的 allTestCoverageFile
。关于code-coverage - 合并多个 jacoco 代理报告以供 SONAR 使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24640033/
在为jhipster配置以下docker容器之后,除了声纳,其他一切都很好: docker run --name jhipster -w / home / jhipster / app -v〜/ jh
最新的 3.3 sonar-maven-plugin 和 5.6 LTS 作为网络服务器。 使用 mvn sonar:sonar 运行 Sonar 分析( Scanner for Maven ) 忽略
我有一个 cobertura.ser 文件,是在集成测试和系统测试时生成的。现在我想将我的覆盖范围导入 Sonar 服务器。 如何实现这一点,以便在执行 mvn sonar:sonar 时覆盖范围应考
场景:我们有一个 Jenkins maven 构建,它在父 pom 上执行 Sonar : Sonar 。我希望此构建的所有模块都显示为单个 Sonar 项目。目前,我们只有一个带有子模块的 Sona
我有一个看起来像这样的 build.xml 文件: 当我运行文件时,我得到: The prefix "sonar" for element "sonar:sonar" is
我尝试使用标准 maven sonar:sonar 目标在 Jenkins 上使用 java 项目运行 Sonar 分析,并使用后步骤 >> 执行 SonarQube 扫描仪。我使用的maven目标是
我想知道 sonar.projectKey、sonar.projectName 和 sonar.projectVersion 是否有任何标准。 我正在 git 环境中工作,需要对同一 git 存储库的
我有一个很大的困惑,当我们有 Sonar 服务器时 Sonar 扫描仪有什么用?当我使用 soarqube 服务器分析一个项目时,它进行了分析并且运行良好。我仍然很困惑为什么我们也需要扫描仪。 与ec
Sonar 与 jenkins 一起正常运行了 6 个月,没有出现任何故障。从上周开始,我看到一些 jenkins 作业出现以下错误,导致作业失败。 [ERROR] Failed to execute
鉴于相同的代码和具有相同规则的相同 SonarQube 服务器,我在使用 mvn sonar:sonar 与 sonar-scanner 扫描时发现的错误和漏洞数量截然不同。 code> CLI 和
我正在编写一个 Sonarqube Java 自定义规则,但在我尝试分析我的代码时一直出现此错误: "SonarQube is unable to analyze file 'File Path' o
我正在尝试将 SonarQube 与 Azure Devops 集成。我已在 SonarQube 管理员中完成配置(管理 > 配置 > 常规设置 > ALM 集成,选择 Azure DevOps 选项
我正在尝试将 SonarQube 与 Azure Devops 集成。我已在 SonarQube 管理员中完成配置(管理 > 配置 > 常规设置 > ALM 集成,选择 Azure DevOps 选项
我想与Jenkins一起针对Maven 2项目启动SonarQube分析。我首先在构建配置中使用了目标sonar:sonar。 但是我刚刚找到了Jenkins的SonarQube插件。为什么要使用它?
将Sonar 4.2(正常运行)与gradle(已测试版本1.11和1.12)一起使用,配置了sonar-runner: allprojects { if (rootProject == pr
我将 Sonar 与 Jenkins 一起使用以进行持续集成和代码分析。我learned该 Sonar 默认包括 Checkstyle、FindBugs、JaCoCo、PMD ,所以我们不需要配置项目
我们想在我们的项目中使用 SonarQube 和一些 CI 工具。 Sonar 服务器 url 在主 pom.xml 中配置。 项目中有几个团队成员。那么当一个团队成员在本地执行 sonar:sona
命令 mvn sonar:sonar 执行的 Maven 生命周期阶段是什么? 虽然我看到了在屏幕上运行的日志,但在非常高的水平上,我发现了测试、安装。 考虑下面的例子, 我有一个像下面这样的mave
我有几个 groovy/grails 项目,我正在使用 sonar-runner 来分析它们。他们工作得很好,直到今天我开始收到这个错误: ERROR: Error during Sonar runn
当我运行声纳时,我的代码覆盖率总是为 0。我使用的是三叶草。 pom.xml 文件中的条目下方 11 1.18.20 Hoxton.SR11
我是一名优秀的程序员,十分优秀!