`
hypgr
  • 浏览: 276951 次
社区版块
存档分类
最新评论

无所不能的“蚂蚁”--Ant(三)

阅读更多

.使用Ant进行Junit测试

 

       我们除了使用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.jarJunit.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>任务使用XSLTxml文件转换为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"?>

 

<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="test.xml" value="xml"></property>

 

    <property name="test.report" value="report"></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="init">

 

       <delete dir="${test.report}"/>

 

       <mkdir dir="${test.report}"/>

 

       <delete dir="${test.xml}"/>

 

       <mkdir dir="${test.xml}"/>

 

    </target>

 

   

 

 

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

 

       <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="false">

 

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

 

           <formatter type="xml"/>

 

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

 

            

分享到:
评论

相关推荐

    MatlabGUI使用java组件无所不能-uicomponent.m

    MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...

    你的习惯对了 你无所不能-习惯的力量PPT模板.pptx

    标题中的“你的习惯对了,你无所不能-习惯的力量PPT模板”暗示了这个PPT内容将探讨习惯如何塑造个人能力和成功。描述中提到“每天有40%的行为并不是真正由决定促成的,而是出于习惯”,这引用了一个研究发现,强调了...

    苹果JBL无所不能遥控器操作说明

    #### 三、常见问题解答 1. **如何重置遥控器?** - 如果遥控器遇到功能异常或无法正常响应的情况,首先尝试更换电池。如果问题仍然存在,按照说明书中的步骤进行重置操作。 2. **遥控器无法连接到设备怎么办?** ...

    互联网 智慧能源-无所不能 完整

    智慧能源-无所不能 完整

    万能编程器软件---无所不能

    总的来说,"万能编程器软件---无所不能"不仅是一个工具,更是一种解决方案,它简化了对各种类型芯片编程的过程,提高了开发效率。无论是用于学习、原型设计还是大规模生产,这样的软件都是电子工程师的得力助手。其...

    让迅雷无所不能下载.rar

    "让迅雷无所不能下载"这个标题暗示了一个可能的增强迅雷下载功能的补丁或者插件,使得用户能够下载更多类型或者原本限制下载的资源。 首先,迅雷的核心技术是P2SP(peer-to-server-peer),它结合了传统的P2P和P2S...

    让迅雷无所不能下载、通吃一切

    让迅雷无所不能下载、通吃一切 让迅雷无所不能下载、通吃一切

    能源互联网白皮书-to 无所不能.pptx

    能源互联网白皮书-to 无所不能.pptx

    让迅雷无所不能的工具 迅雷下载其他资源 电驴 快车

    5. **绿色补丁**:压缩包中的“让迅雷无所不能【绿色补丁】”可能是一个第三方修改版的迅雷,内置了对电驴和快车链接的支持。安装这类补丁前需谨慎,确保来源可靠,以免引入潜在风险。 需要注意的是,使用这些方法...

    电脑测试软件很好用无所不能

    标题中的“电脑测试软件很好用无所不能”表明我们讨论的是一款功能强大的计算机系统诊断和测试工具,它能够全面地分析和评估电脑硬件和软件的性能。这类软件通常包含多个模块,用于测试处理器、内存、硬盘、显卡等...

    真正的无所不能!

    标题中的“真正的无所不能!”可能是指这个压缩包包含了大量的IT学习资源,涵盖了多个领域的知识,而描述中的“我所下的所有书的整合!绝对经典!只要你能想到的这里面都有!”进一步证实了这一点,说明这个集合包含...

    VB无所不能系列(包含文档说明和代码示例)

    根据提供的文件信息,以下是关于VB无所不能系列的详细知识点。 ### 1. 指针 指针在VB中的使用与C语言等其他编程语言中的使用有所不同,因为VB是一种高级语言,它对内存访问进行了封装。在VB中,可以通过API调用和...

    重磅!谷歌发布5620亿参数多模态模型PaLM-E,机器人操控无所不能

    谷歌发布5620亿参数多模态模型PaLM-E,机器人操控无所不能" 这个标题揭示了谷歌在人工智能领域的一项重大突破,即他们推出了一个具有5620亿参数的多模态模型,命名为PaLM-E。这里的“重磅”暗示了该发布的重要性,...

    能源互联网白皮书-to 无所不能.zip

    "能源互联网白皮书-to 无所不能.zip" 文件包含了对这一主题的深入探讨,尤其通过其包含的 "能源互联网白皮书-to 无所不能.pptx" 讲义,我们可以从多个方面了解能源互联网的核心理念和应用实践。 1. **定义与概念**...

    VB无所不能,叫你加深了解

    网络精选教程,希望大家不要忘记VB,包括GDI绘画等详解的例子

    互联网 智慧能源-无所不能 .pptx

    【智慧能源】是一种结合了互联网技术的新型能源管理体系,旨在通过智能化的方式优化能源生产、分配和消费,提高能源效率,减少环境污染,同时满足人们日益增长的多元化能源需求。这一概念的提出,源于对传统能源系统...

    超级模块4.2无所不能

    无所不能 相当强大 目前最强大内容最丰富的超级模块

    互联网 智慧能源-无所不能 完整pptx.pptx

    【智慧能源】是一种结合了互联网技术的新型能源管理系统,它超越了传统的能耗监测,实现了监测、考核、管理、控制的全面整合,形成了一个四位一体的精细化能源管理平台。该平台可以细化到对每个用户或者房间的能耗...

Global site tag (gtag.js) - Google Analytics