Ant与Junit自学报告

Ant的使用

Ant是一个基于java的生成工具,我们可以用Ant来编译java类、自定义标签、配置文件、可以把相关架构整理成包,还可以打包J2EE Web项目然后用Tomcat运行。Ant的功能非常强大,它与makefile等等自动构建工具类似,但更为强大,不需要什么特定的强大的IDE,你也能非常方便的生成一个java项目,甚至将其打成jar包。

1.Ant的下载安装与配置

首先放一条链接:Ant下载
然后是配置环境变量,在用户变量中修改Path(如果没有就添加)和添加ANT_HOME,然后是系统变量中的ClassPath。
ANT_HOME D:\software\Java\ant\apache-ant-1.9.11(用户自己解压ant的地方)
Path %ANT_HOME%\bin
ClassPath %ANT_HOME%\lib
最后是验证ant是否安装成功
WIN+r → cmd → ant 输出Buildfile: build.xml does not exist! Build failed
WIN+r → cmd → ant -version输出ant版本号
如果上面两条输出信息都对的话安装就成功了。

2.Ant的语法

Ant的构建文件是基于XML编写的,默认名称为build.xml。编写完build.xml,然后运行Ant就可以自动编译生成java项目。先来个Ant的小例子:

<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="task" basedir=".">
    <target name="task">
        <echo message="Hello World"/>
    </target>
</project>

写好这个build.xml后直接在该目录下的命令行输入ant就能输出很多信息,提示你task已经完成,并输出了Hello World。现在再来看看Ant的基本语法:

<?xml version="1.0" encoding="UTF-8"?>
<!-- project是根节点,每个ant的构造文件都包含一个project,name是名字,default是默认执行的任务,basedir是项目的基路径,.则是指当前build.xml所在的目录 -->
<project name="HelloWorld" default="" basedir=".">
    <!-- target是任务,name是名字,depends指前置任务,要执行这个任务得先完成depends指定的任务,if指如果满足这个条件就能执行任务,unless相反,不满足条件才能执行,description则是描述 -->
    <target name="task" depends="" if="" unless="" description="">
        <!-- 这里的description也是描述,你可以不将描述放在target的属性description中 -->
        <description></description>
        <!-- property指定键值对,name是键,value是值,使用时,只要${key}就能使用value -->
        <property name="key" value="value"/>
        <!-- echo会输出信息 -->
        <echo message="Hello World! key = ${key}"/>
        <!-- 复制文件和目录 -->
        <copy file="" tofile=""/>
        <copy todir="">
            <fileset dir=""/>
            <fileset dir=""/> <!-- 只拷贝目录,文件不拷贝 -->
        </copy>
        <!-- 删除文件、目录和备份文件 -->
        <delete file=""/>
        <delete dir=""/>
        <delete includeEmptyDirs="true">
            <fileset dir="." include="**/*.bak"/>
        </delete>
        <!-- 创建目录 -->
        <mkdir dir=""/>
        <!-- 移动文件和目录 -->
        <move file="" tofile=""/>
        <move todir="">
            <fileset dir=""/>
        </move>
        <!-- 指定路径 -->
        <path id="mypath">
            <pathelement location=""/>
            <pathelement location=""/>
        </path>
        <!-- 编译 -->
        <javac srcdir="" destdir="">
            <classpath refid="mypath"/>
        </javac>
        <!-- 运行java项目,classpath也可以类似于javac中的classpath作为一个单独的元素 -->
        <java classname="" classpath=""/>
        <!-- 生成jar包 -->
        <jar destfile="" basedir="">
            <manifest>
                <attribute name="Main-class" value="Add"/>
            </manifest>
        </jar>
        <!-- 调用junit jar包进行junit测试 -->
        <junit printsummary="true">
            <classpath refid="mypath"/>
            <formatter type="plain"/>
            <test name="MainTest"/>
        </junit>
    </target>
</project>

我在这里只是基本说明一下Ant的用法, 其实Ant还有很多标签与功能,想要了解的话请自行百度。或者看看这个链接:Ant的详细入门教程

Junit的使用

Junit是一个单元测试工具,用来编写和执行重覆性的测试。JUnit 在测试驱动的开发方面有很重要的应用。Junit是一个框架,你可以直接在自己的项目中导入并使用,而且有些IDE已经有自带的Junit,如MyEclipse。

  • Junit的简单环境配置
    在Eclipse中选择项目—>右击鼠标—>选择Build Path—>选择Configure Build Path——>在左边选择Java Build Path—>在右边选中Libraries->单击按钮“Add Library”—>选JUnit,单击“Next>”—>选择JUnit library version为:JUnit4—>单击按钮“Finish”––>单击按钮“OK”
    或者直接当做寻常jar包导入也行(亲测)。

  • Junit的常用注解:

@Test指定这是要测试的方法,而且测试方法必需用其修饰。
@Before每个测试前执行一次。
@After每个测试后执行一次。
@Ignore被标记的方法不会进行测试。
@BeforeClass在所有测试前的准备,必须是public static@AfterClass在所有测试后的收尾工作,必须是public static,而且每个测试类只能存在一个BeforeClass或AfterClass
@RunWith指定运行器,用于修饰类,但并非必需,系统也可以自动默认Runner来运行代码。
@Parameters说明要测试的数据,修饰一个方法,返回数据。
  • Junit的超时测试与异常测试的使用
@Test(timeout=1000) // 1000ms,超时则报错
public void testFor(){
    for(;;);
}
@Test(excepted=ArithmeticException.class)
public void testDiv(){
    obj.divide(1, 0); // 除以0,会抛出错误
}
  • Junit的具体小案例
    在eclipse上新建一个Str类
public class Str{
    private String s;

    public void set(String s){
        this.s = s;
    }

    public String get(){
        return this.s;
    }
}

然后右击Str类,选择New,选择JUnit Test Case,在弹出框中最顶行选择自己的Junit版本的test,然后可以选择使用什么方法:setUp()是@Before的,tearDown()是@After的,setUpBeforeClass是@BeforeClass的,tearDownAfterClass是@AfterClass的。然后点击next,选择测试什么方法。

import static org.junit.Assert.*;
import org.junit.Test;

public class StrTest{
    private static Str str = new Str();
    private String param;
    private String result;

    @Parameters
    public static Collection data(){
        return Arrays.asList(
            new Object[][]{
                {"test1", "test1"},
                {"test2", "test2"}
            }
        );
    }

    public StrTest(string p, string r){
        param = p;
        result = r;
    }

    @Test
    public void testGetStr(){
        str.set(p);
        assertEquals(r, str.get());
    }
}

然后右击StrTest类,选Run As JUnit Test,就可以运行得到结果了。

Ant与Junit

我们其实是可以用ant来引入Junit并进行junit测试的。
只要用classpath导入了对应的junit jar包,然后用junit标签来运行它就行了。
例子如下:
目录结构
这里写图片描述
build.xml
这里写图片描述
src里面的HelloWorld.java与HelloWorldTest.java
这里写图片描述
这里写图片描述
然后lib下放入junit-4.9.jar包就行了。
运行ant,就能在classes里面生成.class文件,在build.xml文件目录下生成TEST-HelloWorldTest.txt文件。至于sonar-project.properties则是其他无关的文件。

阅读更多
个人分类: software
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Ant与Junit自学报告

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭