文档章节

EclEmma生成测试覆盖度,并使用ant生成测试报告

yanglk2010
 yanglk2010
发布于 01/03 11:02
字数 421
阅读 18
收藏 0

EclEmma生成测试覆盖度,并使用ant生成测试报告


1. Eclipse插件安装:

2. Ant生成junit报告

  • 先看代码
<target name="junit" depends="clean,build-test">
		<mkdir dir="${report.dir}" />
		<junit printsummary="on" fork="false" showoutput="true">
			<classpath refid="master-classpath" />
			<formatter type="xml" />
			<batchtest todir="${report.dir}">
				<fileset dir="${build.dir}">
					<include name="tests/Test*" />
				</fileset>
			</batchtest>
		</junit>
		<junitreport todir="${report.dir}">
			<fileset dir="${report.dir}">
				<include name="TEST-*.xml" />
			</fileset>
			<report format="frames" todir="${report.dir}" />
		</junitreport>
	</target>
  • 这里省略了两个依赖:clean,build-test,其中clean清理生成的class文件,build-test是对要生成报告的类的编译
  • master-classpath运行需要的Jar包:这里是junit4
  • report.dir是报告生成目录;build.dir是编译class的路径
  • junit任务包含两步:junit运行测试(junit),生成报告(junitreport)

EclEmma生成测试覆盖度

  • 代码:
<target name="coverage">  
        <jacoco:coverage destfile="${basedir}/jacoco.exec">
            <junit haltonfailure="false" fork="true" printsummary="true">
                <classpath refid="master-classpath"/>
                <formatter type="xml" />
                <batchtest todir="${report.dir}" fork="true">
                	<fileset dir="${build.dir}">
						<include name="tests/Test*" />
					</fileset>
                </batchtest>  
            </junit>  
        </jacoco:coverage>
    </target>
<target name="coverreport" depends="coverage">
        <jacoco:report>  
            <executiondata>  
                <file file="${basedir}/jacoco.exec" />  
            </executiondata>  
            <structure name="unit test coverage rate report.">  
                <classfiles>  
                	<fileset dir="${build.dir}">
						<include name="tests/Test*" />
					</fileset>
                </classfiles>  
                <sourcefiles encoding="UTF-8">
                	<fileset dir="${src.dir}">
						<include name="tests/Test*" />
					</fileset>
                </sourcefiles>
            </structure>
            <html footer="footer" destdir="${report.dir.coverage}" />  
            <csv destfile="${report.dir.coverage}/coverage-report.csv" />  
            <xml destfile="${report.dir.coverage}/coverage-report.xml" />  
        </jacoco:report>
    </target>
	 <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">  
	 	<classpath refid="jacoco-classpath"/>
	 </taskdef>
  • report.dir.coverage是覆盖率存放路径

© 著作权归作者所有

yanglk2010
粉丝 4
博文 18
码字总数 5405
作品 0
邢台
程序员
私信 提问
7 款提高 Java 代码质量的 Eclipse 插件

FindBugs: FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。 CheckStyle: CheckStyle 是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它...

红薯
2012/01/23
16.2K
3
使用 Java Annotation 定制 Ant Junit Report

本文介绍了扩展 Ant JUnit Report 的方法,通过扩展 Ant 的 XML 结果格式化器,利用 Java Annotation,在生成的 Ant JUnit Report 中关联测试案例相对应的缺陷(Defect)信息。 JUnit 是一个...

红薯
2011/02/15
1K
1
基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计

本文首发于:Jenkins 中文社区 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。"有所了解"指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计:当代...

Jenkins中文社区
05/22
1K
0
定制 Ant Junit Report,调用的时候错误

@红薯 你好,想跟你请教个问题: 前辈您好: 根据这个 http://www.ibm.com/developerworks/cn/java/j-lo-antreport/#icomments? 重新编译了ant源代码 执行ant jars生成ant_junit.jar覆盖到a...

wangfuwen000
2014/04/23
410
0
如何使用Jacoco远程统计tomcat服务的代码覆盖率

如何使用Jacoco远程统计tomcat服务的覆盖率 在做软件开发的时候经常会遇到做各种测试,这里介绍一种本人遇到的:代码覆盖率测试, 这个测试非常实用,能发现许多无效的模块和代码。强烈推荐!...

明舞
2015/08/12
9.3K
7

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
4
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
7
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
10
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
14
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部