Jacoco普通Java项目使用并结合Ant生成报表

和EMMA工具相似,Jacoco生成覆盖率报表也分为两步:1,收集覆盖率信息。2,通过覆盖率信息生成报表。我们可以对第一步生成覆盖率文件进行数据的合并和处理。

1,运行Java类时在VM arguments:

-javaagent:E:\project_lib\Jacoco\jacocoagent.jar=includes=com.jerval.*,output=file,destfile=E:\jacoco.exec

2,通过Ant脚本生成报表:

<?xml version="1.0" encoding="UTF-8"?>

<project name="Example Ant Build with JaCoCo" default="report" xmlns:jacoco="antlib:org.jacoco.ant">
	
	<description>
	  Example Ant build file that demonstrates how a JaCoCo coverage report
	  can be itegrated into an existing build in three simple steps.
	</description>

	<property name="myapp.name" value="Test"/>
	<property name="src.dir" location="E:/workspaceForGit/${myapp.name}/src" />
	<property name="result.report.dir" location="E:/workspaceForGit/${myapp.name}/jacoco_report" />
	<property name="result.classes.dir" location="E:/workspaceForGit/${myapp.name}/bin" />
	<property name="result.exec.file" location="E:/jacoco.exec" />

	<!-- Step 1: Import JaCoCo Ant tasks -->
	<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
		<classpath path="E:/project_lib/Jacoco/org.jacoco.core-0.7.6.201602180812.jar" />
		<classpath path="E:/project_lib/Jacoco/org.jacoco.report-0.7.6.201602180812.jar" />
		<classpath path="E:/project_lib/Jacoco/org.jacoco.ant-0.7.6.201602180812.jar" />
		<classpath path="E:/project_lib/Jacoco/asm-debug-all-5.0.1.jar" />
	</taskdef>

	<target name="report" >
		<!-- Step 3: Create coverage report -->
		<jacoco:report>

			<!-- This task needs the collected execution data and ... -->
			<executiondata>
				<file file="${result.exec.file}" />
			</executiondata>

			<!-- the class files and optional source files ... -->
			<structure name="JaCoCo Ant Example">
				<classfiles>
                    <fileset dir="${result.classes.dir}" />
                </classfiles>
                
				<sourcefiles encoding="UTF-8">
					<fileset dir="${src.dir}" />
				</sourcefiles>
			</structure>

			<!-- to produce reports in different formats. -->
			<html destdir="${result.report.dir}" />
		</jacoco:report>
	</target>

</project>

猜你喜欢

转载自jerval.iteye.com/blog/2363484