文档章节

使用Ant进行Junit测试

小代码2016
 小代码2016
发布于 2016/04/04 21:06
字数 1073
阅读 69
收藏 0

 我们除了使用java来直接运行junit之外,我们还可以使用junit提供的junit taskant结合来运行。涉及的几个主要的ant task如下:

l         <junit>,定义一个junit task

l         <batchtest>,位于<junit>中,运行多个TestCase

l         <test>,位于<junit>中,运行单个TestCase

l         <formatter>,位于<junit>中,定义一个测试结果输出格式

l         <junitreport>,定义一个junitreport task

l         <report>,位于<junitreport>中,输出一个junit report

       运行Junit需要jakarta-ant-1.4-optional.jar和Junit.jar包,因为这两个包用于支持ant task--<junit>的,所以不能在build.xml文件中加载,需要将他们放到ANT_HOME中去.使用eclipse可以按照一下步骤加入:

Windows-Preference-Ant-Runtime-Ant Home Entries

       下面看一个Junit测试的例子:

<?xml version="1.0"?>

<project name="project" default="junit">

         <property name="run.classpath" value="bin"></property>

         <property name="run.srcpath" value="src"></property>

         <property name="test.srcpath" value="test"></property>

         <property name="lib.dir" value="lib"/>    

        

         <path id="compile.path">

                   <pathelement location="${lib.dir}/junit-3.8.1.jar"/>

                   <pathelement location="${lib.dir}/log4j-1.2.8.jar"/>

         </path>

        

         <target name="compile">

                   <javac destdir="${run.classpath}" srcdir="${run.srcpath}"

                            classpathref="compile.path"/>

                   <javac destdir="${run.classpath}" srcdir="${test.srcpath}"

                            classpathref="compile.path"/>

         </target>

        

         <target name="junit" depends="compile">

                   <junit printsummary="true">

                            <classpath path="${run.classpath}"></classpath>

                            <test name="org.ant.test.Test1"></test>

                   </junit>

         </target>

</project>

    可以看出Junit的使用基本和java差不多, printsummary允许输出junit信息,当然Ant提供formatter属性支持多样化的junit信息输出.Ant包含三种形式的formatter:

brief:以文本格式提供测试失败的详细内容;

plain:以文本格式提供测试失败的详细内容以及每个测试的运行统计;

xml:以xml格式提供扩展的详细内容,包括正在测试时的Ant特性,系统输出,以及每个测试用      例的系统错误.

       使用formatter时建议将printsummary关闭,因为他可能对formatter的生成结果产生影响,并多生成一份同样的输出.当然我们可以使用formatter将输出结果显示在console中:

<formatter type="brief" usefile="false"/>

Junit支持多个formatter同时存在:

<formatter type="brief" usefile="false"/>

<formatter type="xml"/>

使用xml我们可以得到扩展性更强的信息输出,这时在<test>中要设定todir来指定xml的输出路径.

       在通常情况下我们不可能一个一个来处理junit,所以Ant提供了<batchtest>,可以在他里面嵌套文件集(fileset)以包含全部的测试用例.

       对于大量的用例,使用控制台输出,或者使用文件或xml文件来作为测试结果都是不合适的,Ant提供了<junitreport>任务使用XSLT将xml文件转换为HTML报告.该任务首先将生成的XML文件整合成单一的XML文件,然后再对他进行转换,这个整合的文件默认情况下被命名为:TESTS-TestSuites.xml.

             <junitreport todir="${test.xml}">

               <fileset dir="${test.xml}">

                 <include name="TEST-*.xml"/>

               </fileset>

               <report format="frames" todir="${test.report}"/>

             </junitreport>

<report>元素指示转换过程中生成有框架(frames)或者无框架的类似与javadoc格式的文件,并保存到todir所在的目录下面.(由于xalan对于JDK1.4以上的版本存在问题,所以要生成HTML文件需要以下步骤:现在最新的xalan,%JAVA_HOME%/jre/lib中建立文件夹endorsed.xalan中的jar文件copy到里面).

下面看一个完整的例子:

            

<?xml version="1.0"?>

<projectname="project"default="junit">

    <propertyname="run.classpath"value="bin"></property>

    <propertyname="run.srcpath"value="src"></property>

    <propertyname="test.srcpath"value="test"></property>

    <propertyname="test.xml"value="xml"></property>

    <propertyname="test.report"value="report"></property>

    <propertyname="lib.dir"value="lib"/>

   

    <pathid="compile.path">

       <pathelementlocation="${lib.dir}/junit-3.8.1.jar"/>

       <pathelementlocation="${lib.dir}/log4j-1.2.8.jar"/>

    </path>

   

    <targetname="init">

       <deletedir="${test.report}"/>

       <mkdirdir="${test.report}"/>

       <deletedir="${test.xml}"/>

       <mkdirdir="${test.xml}"/>

    </target>

   

    <targetname="compile"depends="init">

       <javacdestdir="${run.classpath}"srcdir="${run.srcpath}"

           classpathref="compile.path"/>

       <javacdestdir="${run.classpath}"srcdir="${test.srcpath}"

           classpathref="compile.path"/>

    </target>

   

    <targetname="junit"depends="compile">

       <junitprintsummary="false">

           <classpathpath="${run.classpath}"></classpath>

           <formattertype="xml"/>

           <batchtesttodir="${test.xml}">

              <filesetdir="${run.classpath}">

                  <includename="**/Test*.class"/>

              </fileset>

           </batchtest>

       </junit>

      

        <junitreporttodir="${test.xml}">

          <filesetdir="${test.xml}">

            <includename="TEST-*.xml"/>

          </fileset>

          <reportformat="frames"todir="${test.report}"/>

        </junitreport>

    </target>

</project>

<?xml version="1.0"?>

<projectname="project"default="junit">

    <propertyname="run.classpath"value="bin"></property>

    <propertyname="run.srcpath"value="src"></property>

    <propertyname="test.srcpath"value="test"></property>

    <propertyname="test.xml"value="xml"></property>

    <propertyname="test.report"value="report"></property>

    <propertyname="lib.dir"value="lib"/>

   

    <pathid="compile.path">

       <pathelementlocation="${lib.dir}/junit-3.8.1.jar"/>

       <pathelementlocation="${lib.dir}/log4j-1.2.8.jar"/>

    </path>

   

    <targetname="init">

       <deletedir="${test.report}"/>

       <mkdirdir="${test.report}"/>

       <deletedir="${test.xml}"/>

       <mkdirdir="${test.xml}"/>

    </target>

   

    <targetname="compile"depends="init">

       <javacdestdir="${run.classpath}"srcdir="${run.srcpath}"

           classpathref="compile.path"/>

       <javacdestdir="${run.classpath}"srcdir="${test.srcpath}"

           classpathref="compile.path"/>

    </target>

   

    <targetname="junit"depends="compile">

       <junitprintsummary="false">

           <classpathpath="${run.classpath}"></classpath>

           <formattertype="xml"/>

           <batchtesttodir="${test.xml}">

              <filesetdir="${run.classpath}">

                  <includename="**/Test*.class"/>

              </fileset>

           </batchtest>

       </junit>

      

        <junitreporttodir="${test.xml}">

          <filesetdir="${test.xml}">

            <includename="TEST-*.xml"/>

          </fileset>

          <reportformat="frames"todir="${test.report}"/>

        </junitreport>

    </target>

</project>

生成的文档:

点击Properties超链接会弹出一个窗口显示在测试运行时全部的Ant特性,这对于跟踪由环境和配置造成的失败是非常便利的!

本文转载自:http://blog.csdn.net/tochal/article/details/12560151

共有 人打赏支持
小代码2016
粉丝 37
博文 328
码字总数 153495
作品 0
安阳
程序员
私信 提问
Ant和Junit使用的一些问题

ant集成junit自动测试的build.xml标准模板 利用Ant集成Junit自动测试并生成测试报告,可以极大的提高测试的工作效率,其优势只要是测试用例的批量处理功能。前不久在网上看到很多关于Junit测...

墙头草
2012/01/06
0
0
使用 Java Annotation 定制 Ant Junit Report

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

红薯
2011/02/15
1K
1
定制 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
382
0
Apache Ant 1.9.4 发布,支持 Java 1.9

Apache Ant 1.9.4 发布,该版本引入对 Java 1.9 的支持,支持多线程运行 JUnit 单元测试,基于 JUnit 4 重构 Ant 自己的单元测试。 Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起...

oschina
2014/05/07
4.5K
10
`EclEmma`测试,ant生成`reports`

测试,ant生成 --- 1. Eclipse插件安装: 官网安装三种方式(注:尝试第三种方式未生效,不知道为啥,可能是我Eclipse的问题) 2. Ant生成junit报告 先看代码 这里省略了两个依赖:,,其中清理...

yanglk2010
01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
34分钟前
1
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
41分钟前
1
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部