Ant是一个基于java的生成工具,我们可以用Ant来编译java类、自定义标签、配置文件、可以把相关架构整理成包,还可以打包J2EE Web项目然后用Tomcat运行。Ant的功能非常强大,它与makefile等等自动构建工具类似,但更为强大,不需要什么特定的强大的IDE,你也能非常方便的生成一个java项目,甚至将其打成jar包。
首先放一条链接: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版本号
如果上面两条输出信息都对的话安装就成功了。
Ant的构建文件是基于XML编写的,默认名称为build.xml。编写完build.xml,然后运行Ant就可以自动编译生成java项目。先来个Ant的小例子:
<project name="test" default="task" basedir=".">
<target name="task">
<echo message="Hello World"/>
target>
project>
写好这个build.xml后直接在该目录下的命令行输入ant就能输出很多信息,提示你task已经完成,并输出了Hello World。现在再来看看Ant的基本语法:
<project name="HelloWorld" default="" basedir=".">
<target name="task" depends="" if="" unless="" description="">
<description>description>
<property name="key" value="value"/>
<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 classname="" classpath=""/>
<jar destfile="" basedir="">
<manifest>
<attribute name="Main-class" value="Add"/>
manifest>
jar>
<junit printsummary="true">
<classpath refid="mypath"/>
<formatter type="plain"/>
<test name="MainTest"/>
junit>
target>
project>
我在这里只是基本说明一下Ant的用法, 其实Ant还有很多标签与功能,想要了解的话请自行百度。或者看看这个链接:Ant的详细入门教程
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说明要测试的数据,修饰一个方法,返回数据。
@Test(timeout=1000) // 1000ms,超时则报错
public void testFor(){
for(;;);
}
@Test(excepted=ArithmeticException.class)
public void testDiv(){
obj.divide(1, 0); // 除以0,会抛出错误
}
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并进行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则是其他无关的文件。