`
wenhai_zhang
  • 浏览: 186143 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用Ant执行Junit实现自动化

阅读更多

单元测试 - JUnit+Ant自动化执行单元测试并生成报告 | How to Automated Unit Testing with JUnit and Ant

【转】:http://aofengblog.blog.163.com/blog/static/6317021201312734058296/

 

 JUnit是Java社区广泛使用的单元测试框架,使单元测试编写和执行变得非常容易,并且几乎所有的流行Java IDE(Eclipse, NetBeans)都集成了它。而JUnit结合Ant可以自动化执行一个项目所有的单元测试并输出单元测试报告。
    下面通过一个完整的脚本样例来说明如何编写Ant脚本执行一个项目的单元测试用例和输出单元测试报告。

一、定义源代码目录和编译输出目录和classpath等变量定义 | Variable Definitions

单元测试-自动化执行单元测试并输出报告 - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来

1、业务源代码目录(src.java.dir) ,单元测试源代码目录(src.test.dir)。
2、业务源代码编译后输出目录(target.java.dir),单元测试源代码编译后输出目录(target.unit-test.dir),Cobertura打点后的输出目录(target.cover-test.dir)。
3、第三方依赖库目录。
4、单元测试执行报告输出目录(target.unit-test.dir),单元测试覆盖率报告输出目录(target.cover-test-report.dir)。
5、业务源代码编译所需的classpath(app.classpath),单元测试源代码编译所需的classpath(app.test.classpath)。

二、编译业务源代码和单元测试源代码 | Compile Code

单元测试-自动化执行单元测试并输出报告 - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来

1、编译业务源代码。

2、编译单元测试源代码。

三、执行单元测试用例并生成单元测试报告 | Unit Test And Generate Report

单元测试-自动化执行单元测试并输出报告 - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来

1、批量执行单元测试,并且以xml格式输出每一个用例的执行结果。
<junit>标签配置属性说明:

  • printsummary - 为每一个测试用例通过System.out输出一行统计信息,如果出错或测试失败则通过System.err输出信息。
  • haltonerror - 执行单元测试出错时停止执行的后续用例。
  • haltonfailure - 执行单元测试失败时停止执行的后续用例。
  • fork - 在独立的VM中执行单元测试用例。

<formatter>标签的配置属性说明:

  •  type - 单元测试用例执行结果输出格式。可选项有:plain, xml, brief 或 failure
  •  usefile - 单元测试用例执行结果是否输出至文件

<batchtest>标签的配置属性说明:

  • todir - 单元测试用例执行结果输出目录。


2、根据每个用例的执行结果文件Test-*.xml输出单元测试报告。
<junitreport>标签配置属性说明:

  • todir - 单元测试报告输出目录。

 

四、执行脚本并查看单元测试报告 | Execute Script And View Report

在命令行中输入: ant unit-test-report ,最终输出的单元测试报告类似如下:

单元测试-自动化执行单元测试并输出报告 - 傲风 - 宝剑锋从磨砺出 梅花香自苦寒来

 

附录:完整的Ant脚本build.xml样例

<?xml version="1.0" encoding="UTF-8" ?>
<project name="busimonitor" basedir=".">
    <property name="src.java.dir" location="${basedir}/app" />
    <property name="src.test.dir" location="${basedir}/test" />
    <property name="target.dir" location="${basedir}/classes" />
    <property name="target.java.dir" location="${target.dir}/java" />
    <property name="target.unit-test.dir" location="${target.dir}/unit-test" />
    <property name="target.cover-test.dir" location="${target.dir}/cover-test" />
    <property name="src.extend.lib.dir" location="${basedir}/lib"/>
    <property name="play.lib.dir" location="/devdata/projects/game/play-1.2.5/framework" />
    <property name="target.report.dir" location="${basedir}/report" />
    <property name="target.unit-test-report.dir" location="${target.report.dir}/unit-test" />
    <property name="target.cover-test-report.dir" location="${target.report.dir}/cover-test" />
    <path id="app.classpath">
        <fileset dir="${play.lib.dir}">
            <include name="**/*.jar" />
        </fileset>
        <fileset dir="${src.extend.lib.dir}">
            <include name="*.jar" />
        </fileset>
        <path location="${target.java.dir}" />
        <path location="${basedir}/conf" />
    </path>
    <path id="app.test.classpath">
        <path location="${target.unit-test.dir}" />
    </path>
    <target name="compile.java">
        <mkdir dir="${target.java.dir}" />
        <javac srcdir="${src.java.dir}" destdir="${target.java.dir}" 
            debug="on" source="1.6" includeantruntime="on">
            <classpath refid="app.classpath"></classpath>
        </javac>
    </target>
    <target name="compile.test" depends="compile.java">
        <mkdir dir="${target.unit-test.dir}" />
        <javac srcdir="${src.test.dir}" destdir="${target.unit-test.dir}" 
            debug="on" source="1.6" includeantruntime="on">
            <classpath refid="app.classpath"></classpath>
            <classpath refid="app.test.classpath"></classpath>
        </javac>
        <copy todir="${target.unit-test.dir}">
            <fileset dir="${src.test.dir}">
                <include name="**/*.properties" />
                <include name="**/*.xml" />
            </fileset>
        </copy>
    </target>
    <target name="compile" depends="compile.java, compile.test"></target>
    <target name="unit-test" depends="compile">
        <mkdir dir="${target.unit-test-report.dir}" />
        <junit printsummary="on" haltonerror="off" 
            haltonfailure="off" fork="on">
            <formatter type="plain" usefile="off"/>
            <formatter type="xml" usefile="on" />
            <batchtest todir="${target.unit-test-report.dir}">
                <fileset dir="${target.unit-test.dir}">
                    <include name="**/*Test.class"/>
                </fileset>
            </batchtest>
            <classpath refid="app.classpath"></classpath>
            <classpath refid="app.test.classpath"></classpath>
        </junit>
    </target>
    <target name="unit-test-report" depends="unit-test">
        <mkdir dir="${target.unit-test-report.dir}/html" />
        <junitreport todir="${target.unit-test-report.dir}">
            <fileset dir="${target.unit-test-report.dir}">
                <include name="TEST-*.xml" />
            </fileset>
            <report todir="${target.unit-test-report.dir}/html" />
        </junitreport>
    </target>
</project>

 

参考资料 | References



<正文结束>

分享到:
评论

相关推荐

    eclipse下利用ant、junit进行自动化测试例子源码

    当ANT执行测试时,JUnit会运行所有的测试用例,并报告测试结果。 6. **源码分析**:压缩包中的"testAntJunit"文件可能是包含了一个示例项目,这个项目演示了如何在Eclipse中设置ANT脚本和JUnit测试。通过查看源码,...

    ANT&JUNIT中文手册

    同时,由于Ant可以与JUnit集成,手册也将教你如何通过Ant来运行JUnit测试,从而实现构建过程中的自动化测试。 Ant与JUnit的结合使用是Java开发中的常见实践,Ant负责项目的构建,而JUnit则确保代码的质量。通过Ant...

    ANT执行junit

    **Ant执行JUnit** Apache Ant,一个Java库和命令行工具,其任务是驱动构建过程。它是Java项目的主要构建工具之一,以其灵活性和可扩展性而闻名。JUnit,则是Java编程语言中最广泛使用的单元测试框架,它允许开发...

    一个使用ant及junit进行单元测试的简单例子

    Ant通过读取这个XML文件并执行其中的指令来自动化整个构建流程。 在提供的文件列表中,“buildjunit.properties”可能是Ant的属性文件。这类文件用于存储构建过程中需要的配置参数,例如类路径、输出目录等。属性...

    Ant 使用Junit进行单元测试

    通过Ant执行`test`目标后,Ant会自动调用JUnit运行测试,并将结果输出到控制台或指定的报告文件中。如果测试失败,Ant会显示错误信息,帮助开发者定位问题。 在实际项目中,我们可能还需要配置测试结果的XML输出,...

    ant+junit教程

    Ant是一个构建工具,它允许开发者自动化构建、测试和部署Java项目,而JUnit则是一个单元测试框架,用于编写和运行可重复的测试用例,确保代码质量。这个“ant+junit教程”会深入探讨这两个工具的集成与使用。 首先...

    ant-junit-1.6.5.jar.zip

    "ant-junit-1.6.5.jar"是Ant对JUnit支持的库文件,它包含了Ant执行JUnit测试所需的类和方法。这个JAR文件让Ant能够调用JUnit,并在构建过程中运行测试。在build.xml文件中,可以配置JUnit任务(&lt;junit&gt;),指定测试...

    ant-junit4.jar.zip

    通过合理配置Ant的build.xml文件,我们可以实现自动化测试,提高开发效率,保证代码质量,从而提升整个项目的稳健性和可靠性。在实际项目中,掌握Ant和JUnit4的结合使用,对于开发者来说是非常重要的技能。

    ant-junit-1.7.0.jar.zip

    同样,Apache Ant作为一款强大的构建工具,帮助开发者自动化执行各种任务。当这两者结合时,能更有效地进行项目构建和测试。本文将详细探讨“ant-junit-1.7.0.jar.zip”这一组合,以及其中包含的“ant-junit-1.7.0....

    ant-junit-1.6.1.jar.zip

    当我们谈到“ant-junit-1.6.1.jar.zip”时,实际上是在讨论如何将这两个工具有效地整合在一起,以实现自动化测试。 首先,让我们了解一下Apache Ant。Ant是Apache软件基金会的一个项目,它是一个基于XML的构建工具...

    Maven2.Ant.Junit合集

    Ant的核心概念是任务(Tasks),它们是Ant执行的具体操作。例如,`javac`任务用于编译Java源代码,`jar`任务用于创建JAR文件。Ant强调可配置性和可扩展性,可以适应各种项目的需求。 2. **JUnit**: JUnit是Java...

    Ant+Junit4实现自动单元测试

    本篇文章将详细探讨如何利用Ant和JUnit4来实现自动化的单元测试。 首先,我们需要了解Ant的基本概念。Apache Ant是一个Java库和命令行工具,其任务是驱动构建过程。它的配置文件(通常命名为build.xml)定义了一...

    7_ant_junit和ant的整合(非常重要)

    这篇讨论将专注于如何将JUnit集成到Ant构建系统中,以便在Java项目中实现高效的自动化测试。 Ant是一个由Apache软件基金会开发的Java构建工具。它基于XML,允许开发者定义构建过程中的任务,如编译、打包、测试等。...

    Ant与Junit结合

    标题“Ant与JUnit结合”指的是在Java开发中如何利用Apache Ant构建工具与JUnit测试框架进行集成,以便自动化地运行单元测试。Apache Ant是一种基于XML的构建工具,它替代了传统的Makefile,为Java项目提供了构建、...

    Apache Ant 与Junit 对Java工程联合测试DEMO

    Apache Ant是一种构建工具,它允许开发者自动化构建、测试和部署Java项目。而JUnit则是Java语言中最常用的单元测试框架,它使得程序员可以方便地编写和运行可重复的测试用例,确保代码的质量。 首先,Apache Ant...

    junit + ant 自动化测试

    在这个"junit + ant 自动化测试"的demo版本中,我们很可能是看到一个使用`Ant`配置文件(通常是`build.xml`)来调用`JUnit`进行测试的例子。这个`TestJUnit4`可能是一个包含测试类或测试用例的Java源代码文件,利用...

    Junit+Jacoco+ant集成使用

    本文将详细介绍如何将JUnit和JaCoCo与Ant构建工具进行集成,以便在项目中实现自动化测试和覆盖率报告。 1. JUnit简介 JUnit是Java编程语言的一个开源测试框架,主要用于编写和运行基于JUnit注解的单元测试。它提供...

    Ant+Junit+SVN的安装过程

    首先,Ant是一个基于Java和XML的构建工具,它的主要功能是管理和自动化项目的构建过程。Ant通过一个名为build.xml的XML配置文件来定义一系列的任务,这些任务涵盖了从编译源代码、打包、部署到运行测试等多种操作。...

Global site tag (gtag.js) - Google Analytics