ANT task之Junit

一、ANT任务之Junit:

  学习ANT其实主要是学习ANT的task,ANT众多task中有一个Testing Tasks,它下面有两个任务:Junit和JunitReport,主要用来进行单元测试及生成单元测试报告。

Testing Tasks
Task Name Description
Junit
Runs tests from the Junit testing framework. This task has been tested with JUnit 3.0 up to JUnit 3.7; it won‘t work with versions prior to JUnit 3.0.

JunitReport
Merges the individual XML files generated by the Junit task and applies a stylesheet on the resulting merged document to provide a browsable report of the testcases results.

官方网址:http://ant.apache.org/manual/index.html

本文主要介绍junit task,<junit>下面可以包含其它元素,例如:

  1、<test>:运行单个TestCase

  2、<batchtest>:运行多个TestCase

  3、<formatter>:定义测试结果输出格式

还有很多,详细可以参考官方文档。

二、项目实例:

由于ant安装比较得简单,网上一搜一大把且现在ecplise基本都带ant,所以本文并未说明如何搭建ant环境。

另外,在eclipse中可以通过:window->show view 来调出Ant视图

1、目录结构如下:

2、SimpleCalculation类代码如下:

1 package com.glen.he;
2
3 public class SimpleCalculation {
4     public int Add(int a,int b){
5         return (a+b);
6     }
7
8 }

SimpleCalculation

3、测试类SimpleCalculationTest代码如下:

 1 package com.glen.he;
 2
 3 import com.glen.he.SimpleCalculation;
 4
 5 import static org.junit.Assert.*;
 6 import org.junit.Test;
 7
 8 public class SimpleCalculationTest {
 9
10     SimpleCalculation sc = new SimpleCalculation();
11
12     @Test
13     public void AddTest() {
14
15         int c = sc.Add(3, 5);
16
17         assertEquals(8, c);
18     }
19 }

SimpleCalculationTest

4、在项目要目录下添加build.xml文件,内容如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="AntDemo" default="junit" basedir=".">
 3     <!-- =================================================================== -->
 4     <!-- 变量设置  -->
 5     <!-- =================================================================== -->
 6
 7     <!-- 源代码src路径 -->
 8     <property name="src.path" value="src/java"/>
 9     <!-- 编译文件class路径 -->
10     <property name="build.path" value="build"/>
11     <!-- 单元测试代码路径 -->
12     <property name="test.path" value="src/test"/>
13     <!-- lib包路径 -->
14     <property name="lib.path" value="lib"/>
15
16     <!-- =================================================================== -->
17     <!-- 设置classpath -->
18     <!-- =================================================================== -->
19     <path id="compile.path">
20         <fileset dir="${lib.path}">
21             <include name="**/*.jar"/>
22         </fileset>
23
24         <pathelement path="${build.path}"/>
25     </path>
26
27     <!-- =================================================================== -->
28     <!-- 清除历史编译class -->
29     <!-- =================================================================== -->
30     <target name="clean" description="clean">
31         <delete dir="${build.path}"/>
32     </target>
33
34     <!-- =================================================================== -->
35     <!-- 编译测试文件,初始化目录 -->
36     <!-- =================================================================== -->
37     <target name="compile" description="compile">
38         <mkdir dir="${build.path}"/>
39         <javac srcdir="${src.path}" destdir="${build.path}"  classpathref="compile.path"/>
40         <javac srcdir="${test.path}" destdir="${build.path}"  classpathref="compile.path"/>
41     </target>
42
43     <!-- =================================================================== -->
44     <!-- 执行测试案例 -->
45     <!-- =================================================================== -->
46     <target name="junit" depends="clean,compile">
47         <junit printsummary="true">
48              <classpath refid="compile.path"/>
49
50              <test name="com.glen.he.SimpleCalculationTest"/>
51          </junit>
52      </target>
53
54 </project>

说明:

<junit printsummary="true">
  <classpath refid="compile.path"/>
  <test name="com.glen.he.SimpleCalculationTest"/>
</junit>

<path id="compile.path">
  <fileset dir="${lib.path}">
    <include name="**/*.jar"/>
  </fileset>
  <pathelement path="${build.path}"/>
</path

我们在<junit〉任务下,使用了编译后的.class文件的目录,还有编译所需的jar包所在的目录。 因为,JUnit任务实际就是为我们运行Test类,而不仅仅是像我们发布Ant文件那样只是javac编译,只需要编译所需的Jar包。我们还需要像java任务那样运.class文件,所以必须包括编译后的.class文件。

5、然后把build.xml文件拖到Ant视图中,如下图,双击junit执行即可。

6、执行结果:

 1 Buildfile: D:\AntTest\build.xml
 2 clean:
 3    [delete] Deleting directory D:\AntTest\build
 4 compile:
 5     [mkdir] Created dir: D:\AntTest\build
 6     [javac] Compiling 1 source file to D:\AntTest\build
 7
 8     [javac] Compiling 1 source file to D:\AntTest\build
 9 junit:
10     [junit] Running com.glen.he.SimpleCalculationTest
11     [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.016 sec
12 BUILD SUCCESSFUL
13 Total time: 1 second

参考:

http://blog.csdn.net/shendl/article/details/532587

http://blog.csdn.net/tochal/article/details/12560151

时间: 2024-10-28 23:45:54

ANT task之Junit的相关文章

Gradle Goodness: Rename Ant Task Names When Importing Ant Build File

Migrating from Ant to Gradle is very easy with the importBuild method from AntBuilder. We only have to add this single line and reference our existing Ant build XML file and all Ant tasks can now be executed as Gradle tasks. We can automatically rena

搭建持续集成单元测试平台(Jenkins+Ant+Java+Junit+SVN)

一.环境准备 1.Jenkins: 到官网下载jenkins.war包:http://jenkins-ci.org/ .安装方法有以下两种方式: 1)把下载下来的jenkins.war包放到文件夹下,如C:\jenkins,然后打开命令行窗口并进到该目录下,执行Java -jar jenkens.war命令,当提示:"Jenkins is fully up and running"时,表示启动成功,这时在浏览器窗口输入:http://localhost:8080/ 就可到jenkins

基于JAXB的Ant自定义Task

官方Manual链接: http://ant.apache.org/manual/index.html Ant.XSD.JAXB.XML的基本概念这里就不介绍,网上随便搜搜都有一大把,本文主要讲解利用XSD生成JAXB类来自定义Ant Task,自动完成XML的解析工作,提高开发效率. 开发工具采用Eclipse. 第一步,在Eclipse中创建Java项目,这里取名为WritingAntTaskDemo. 第二步,创建xsd文件,这里我在项目中jet.demo.xsd的包下创建了名为MyTas

JUnit(4)单元测试利器 JUnit 4

引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果.单元测试正是验证代码行为是否满足预期的有效手段之一.但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作.幸运的是,单元测试工具 JUnit 使这一切变得简单艺术起来. JUnit 是 Java 社区中知名度最高的单元测试工具.它诞生于 1997 年,由 Erich Gamma 和 Kent Beck 共同开发完成.其中 Erich Gamma 是经典著作

#测试相关#Getting “junit.framework.AssertionFailedError: Forked Java VM exited abnormally” Exception

编写Ant脚本进行持续测试的时候,出现了junit.framework.AssertionFailedError: Forked Java VM exited abnormally的报错,以此为关键字谷歌了很久,得到的答案几乎都是扩大内存之类,或者设置junit标签的fork为no的,试过了均是无效. 其实这个提示是不够精准的. I faced similar issue. I ran junit tests as ant task. Added showoutput="yes" an

ant+sonar+jacoco代码质量代码覆盖率扫描

使用ant构建的java web项目如何做sonar代码质量扫描?以下就是实际遇到并成功使用的案例一.做sonar扫描的准备工作    1.给web项目增加build.xml构建脚本.    2.下载jar包:jacocoant.jar:sonar-ant-task-2.2.jar    3.搭建一个sonar服务器二.在build.xml中编写jacoco和sonar的脚本 案例的build.xml脚本 <?xml version="1.0" encoding="UT

java单元测试(使用junit)

JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用. 1.概述 Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能. Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了. 由于Junit相对独立于

项目自动构建工具对比(Maven、Gradle、Ant)

Java世界中主要有三大构建工具:Ant.Maven和Gradle.经过几年的发展,Ant几乎销声匿迹.Maven也日薄西山,而Gradle的发展则如日中天. Maven的主要功能主要分为5点,分别是依赖管理系统.多模块构建.一致的项目结构.一致的构建模型和插件机制.我们可以从这五个方面来分析一下Gradle比起Maven的先进之处. 依赖管理系统 Maven为Java世界引入了一个新的依赖管理系统.在Java世界中,可以用groupId.artifactId.version组成的Coordin

从源码角度深入分析ant

Ant的基本概念 首先是ant的基本概念:Project,Target,Tasks,Properties,Paths 1.Project <project> build.xml文件最顶层的元素,它有三个可选的属性:名称(name):工程的名称默认(default):默认的目标(target).基础目录(basedir):工程的根目录,工程所有的相对路径从此算起. 2. target 每个project定义了0个或者多个target,是project的次级目录. 一个target是一组要执行的t