`
shijunjuan
  • 浏览: 46869 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

如何合并Jacoco的Code Coverage Report

阅读更多

今天碰到一个问题,CI上的一个job,有多个子目录,分别生成各自的Jacoco的Code coverage report,我们想合并这些报表。研究了一下jacoco:merge的maven插件和ant任务,由于我们是Scala的SBT项目,最后采用如下方法实现。

添加一个pom_cc.xml文件,内容如下。

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.squbs</groupId>
	<artifactId>unicomplex-mergecc</artifactId>
	<version>0.0.2-SNAPSHOT</version>
	<!-- Packing Type is bundle for OSGI Library Bundle -->
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.6</version>
				<executions>
					<execution>
						<phase>post-integration-test</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target>
							<!-- Execute an ant task within maven -->
								<echo message="Generating JaCoCo Reports" />
								<taskdef name="report" classname="org.jacoco.ant.ReportTask">
									<classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar" />
								</taskdef>
								<mkdir dir="${basedir}/target/coverage-report" />
								<report>
									<executiondata>
										<fileset dir="${basedir}/unicomplex/target/scala-2.10/jacoco">
											<include name="jacoco.exec" />
										</fileset>
										<fileset dir="${basedir}/zkcluster/target/scala-2.10/jacoco">
											<include name="jacoco.exec" />
										</fileset>
									</executiondata>
									<structure name="jacoco-multi Coverage Project">
										<group name="jacoco-multi">
											<classfiles>
												<fileset dir="${basedir}/unicomplex/target/scala-2.10/classes" />
												<fileset dir="${basedir}/zkcluster/target/scala-2.10/classes" />
											</classfiles>
											<sourcefiles encoding="UTF-8">
												<fileset dir="${basedir}/unicomplex/src"></fileset>
												<fileset dir="${basedir}/zkcluster/src"></fileset>
											</sourcefiles>
										</group>
									</structure>
									<html destdir="${basedir}/target/coverage-report/html" />
									<xml destfile="${basedir}/target/coverage-report/coverage-report.xml" />
									<csv destfile="${basedir}/target/coverage-report/coverage-report.csv" />
								</report>
							</target>
						</configuration>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>org.jacoco</groupId>
						<artifactId>org.jacoco.ant</artifactId>
						<version>0.7.1.201405082137</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
</project>

 然后调用mvn clean verify -f pom_cc.xml来执行合并。

 

 

分享到:
评论

相关推荐

    jacoco获取exec和获取report

    JaCoCo(Java Code Coverage)是一个广泛使用的开源代码覆盖率工具,专门针对Java应用程序。它提供了简单的API和Maven、Gradle等构建工具的插件,使得开发者能够轻松地集成到自己的项目中,以测量单元测试的代码覆盖...

    jacoco代理

    JaCoCo(Java Code Coverage Library)是一款强大的Java代码覆盖率工具,它为开发者提供了在单元测试和集成测试中衡量代码覆盖率的能力。JaCoCo的主要目标是简化覆盖率收集并提供易于使用的报告,使得开发团队能够...

    jacoco-report:Github操作,在“拉取请求”中将JaCoCo报告作为注释发布

    雅各报告 Github操作,在“拉取请求”中将JaCoCo报告作为注释发布用法先决条件在存储库.github/workflows目录中创建一个工作流程.yml文件。 下面提供了。 有关更多信息,请参考GitHub帮助文档,用于。输入项path ...

    JacocoAnt.rar

    JaCoCo(JaCoCo Code Coverage)是一款强大的Java代码覆盖率工具,广泛应用于软件开发中的单元测试覆盖率分析。JaCoCo提供了多种集成方式,包括Maven、Gradle以及Ant等。在这个实例中,我们将重点关注如何使用JaCoCo...

    jacoco框架源码

    JaCoCo,全称为Java Code Coverage Library,是一个开源的Java代码覆盖率工具。它被广泛用于软件开发中的单元测试覆盖率分析,帮助开发者了解测试覆盖了多少代码,确保测试的质量和完整性。JaCoCo的核心功能是通过...

    anger-jacoco:危险插件,可根据jacoco xml报告进行检查

    anger-jacoco是插件,用于验证更改文件的代码覆盖率 安装 sudo gem install danger-jacoco 用法 加 jacoco . minimum_project_coverage_percentage = 50 # default 0 jacoco . minimum_package_coverage_map = { # ...

    jacoco实践demo

    JaCoCo(JaCoCo: Java Code Coverage Library)是一款广泛使用的开源Java代码覆盖率工具,它可以帮助开发者在单元测试中衡量和验证代码的覆盖情况。JaCoCo通过字节码注入的方式,在运行时收集代码覆盖率数据,支持...

    Jacoco_mavenReport

    JaCoCo(Java Code Coverage)是一款广泛使用的开源Java代码覆盖率工具,它可以帮助开发者在单元测试过程中了解代码的覆盖率情况,确保代码的质量。JaCoCo提供了方便的插件系统,可以与Maven、Gradle等构建工具无缝...

    jacococli工具包

    Java Code Coverage(JaCoCo)是一款强大的开源代码覆盖率工具,主要用于Java应用程序的测试覆盖率分析。JaCoCo提供了一套命令行接口(CLI),即jacococli.jar,用于执行各种与代码覆盖率相关的任务,如生成覆盖率...

    Jacoco的代码覆盖范围入门

    "Getting-Started-with-Code-Coverage-by-Jacoco.pdf"可能是详细的教程,指导读者如何开始使用JaCoCo进行代码覆盖率分析。"jacoco-example.zip"可能包含一个实际的Maven项目示例,演示了JaCoCo的集成和使用。 总之...

    coverage.vim:代码覆盖率vim插件

    代码覆盖率(Code Coverage)是衡量测试充分性的指标,它表示源代码中有多少行、分支或语句被测试用例执行过。常见的覆盖率类型包括行覆盖率、分支覆盖率、条件覆盖率等。代码覆盖率高意味着测试更全面,但并不代表...

    java笔试题算法-java-sorting-algorithms:使用Java实现排序算法

    Coverage report will be located at `build/reports/jacoco/test/html/index.html` # Code style issues report will be located at `build/reports/checkstyle/main.html` 如何贡献 过头。 可用算法 归并排序 快速...

    mvncodecoverage

    Maven – JaCoCo代码覆盖率示例Maven,JUnit 5 + JaCoCo... $ git clone https://github.com/mkyong/maven-examples.git$ cd maven-code-coverage$ mvn clean test# view report at 'target/site/jacoco/index.html'

    JacocoTest2

    JaCoCo(JaCoCo: Java Code Coverage Library)是一款广泛使用的开源Java代码覆盖率工具,适用于单元测试和集成测试,它可以帮助开发者了解测试覆盖了多少代码,是持续集成和质量控制的重要组成部分。JaCoCo不仅支持...

    Android-Test-Coverage:该项目包括举例说明单元测试和UI测试的实施,以确保新功能的质量和可维护性

    JaCoCo是一个常用的Java代码覆盖率工具,它可以集成到Android项目中,生成覆盖率报告,帮助我们了解测试的全面性。 在`Android-Test-Coverage`项目中,你可能还会发现如何设置和运行测试,以及如何生成和解析覆盖率...

Global site tag (gtag.js) - Google Analytics