文档章节

使用Ant进行Junit测试

小代码2016
 小代码2016
发布于 2016/04/04 21:06
字数 1073
阅读 63
收藏 0
点赞 1
评论 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
粉丝 35
博文 328
码字总数 153495
作品 0
安阳
程序员
Ant和Junit使用的一些问题

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

墙头草
2012/01/06
0
0
Eclipse中配置junit

在Eclipse中配置Junit的方法有两种方式: 第一种方法: 1、下载junit的jar包,目前它的版本是junit3.8.1,可以从www.junit.org上下载。 2、在要使用Junit的project名上,点击properties--jav...

xiahuawuyu
2012/07/24
0
0
Tomcat 源码的获取与部署

目的:获取tomcat源码,部署到eclipse进而分析tomcat的架构体系。 准备工作: svn客户端下载 ant下载,环境变量path配置到ant下面的bin tomcat项目的源码地址: http://svn.apache.org/repo...

java-苦苦甜甜
2013/06/17
0
0
robotium+ant+android-junit-report

根据此链接的步骤为现有的robotium项目自动生成ant的build.xml文件:http://xiaomaozi.blog.51cto.com/925779/932284/ 根据此链接的步骤将android-junit-report.jar导入项目并根据链接上的...

智能小松鼠
2015/05/06
0
0
每日备份JENKINS_HOME至SVN

每日备份JENKINS_HOME至版本控制系统SVN Jenkins是一个可扩展的开源的持续集成工具,也是当下最流行的持续集成工具。 易于安装(Easy installation) 易于配置(Easy configuration) 变更集支持...

donhui
2015/04/06
0
0
用Apache Ivy实现项目里的依赖管理

用Apache Ivy实现项目里的依赖管理 Apache Ivy是一个管理项目依赖的工具。 它与MavenApache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意。Maven 引入了 JAR 文件公共存储库...

干死it
2014/06/13
0
0
Android Java 程序员必备开发工具

对于Java,有两种截然不同的观点:一种认为Java是最简单功能最强大的编程语言之一,另一种则表示这种编程语言既难用又复杂。 下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就...

拉偶有所依
2015/06/11
0
1
测试框架Automation Center(java、QTP、selenium-java 版、...

支持selenium java语言的一个框架,留以后学习~~ 相关链接:http://www.cesoo.info/acdocs/zh_cn/index.html#Menu=ChildMenu1 框架介绍 AC是一个集成各种测试工具的java自动化测试管理与运行平...

Rebecca.Hu
2012/02/17
0
4
你应该更新的Java知识之构建工具:Gradle 和 Buildr

时至今日,如果你的Java项目依然需要启动一个特定的工具,比如IDE,才能编译部署,那你的项目不在本文的讨论之中,因为实在落后得太让人无语了。 好,回归正题。旧时代的Java世界,构建工具等...

苗哥
2013/07/07
0
1
Tomcat源码学习(一) 源码编译和导入Eclipse

由于现在项目相对比较轻松,而且项目是研究SOA和Web Service的,因此这里我要对一些相关的开源技术做一些研究。接下来我要写的文章是Tomcat源码系列的文章,文章(一)是关于Tomcat源码编译和如...

光石头
2011/05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
1
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
0
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
0
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
2
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
0
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部