想在ant中使用junit4还是很麻烦的。因为ant1.6.5最新发布的版本不支持junit4。在ANT的网站看到ant1.7可以支持了。下了1.7RC1的源码编译一下。生成了相应的jar。
1、 将生成的bin目录和lib 目录放到一个目录。并把这个目录设置成ANT_HOME(不设置也可以,主要是为了方便),然后将ANT_HOME/bin加入path中。
2、将junit4.1.jar复制到ANT_HOME/lib目录下。
这个如果不加入的话,用ANT编译的时候就会提示找不到org.junit
加入之后。在Eclipse中运行ANT任务中的编译,还是提示找不到org.junit。找不到原因,只好在命令行中使用ANT了。
3、在一个junit4风格的测试(在Eclipse下很方便的啊)
4、单独运行(不用ANT)测试用例,成功,证明测试可以工作了。
5、在build.xml中加入<junit>和<junitreport>
完整的build.xml代码如下:
<?
xml version="1.0"
?>
<!--
======================================================================
2006-11-26 下午03:38:02
libo
======================================================================
-->
<
project
name
="JA"
default
="default"
>
<!--
=================================
define variable
=================================
-->

<
property
name
="src.dir"
location
="src"
>
</
property
>
<
property
name
="src.java.dir"
location
="${src.dir}/main/java"
/>
<
property
name
="src.test.dir"
location
="${src.dir}/test/java"
/>
<
property
name
="target.dir"
location
="target"
/>
<
property
name
="target.java.dir"
location
="${target.dir}/classes"
/>
<
property
name
="target.test.dir"
location
="${target.dir}/test-classes"
/>
<
property
name
="target.report.dir"
location
="${target.dir}/report"
>
</
property
>

<!--
=================================
target: default
=================================
-->
<
target
name
="default"
depends
="report"
description
="--> description"
>

</
target
>

<!--
- - - - - - - - - - - - - - - - -
target: complie java
- - - - - - - - - - - - - - - - -
-->
<
target
name
="complie.java"
>
<
mkdir
dir
="${target.java.dir}"
/>
<
javac
destdir
="${target.java.dir}"
>
<
src
path
="${src.java.dir}"
>
</
src
>
</
javac
>
</
target
>
<!--
- - - - - - - - - - - - - - - - -
target: complie test-java
- - - - - - - - - - - - - - - - -
-->
<
target
name
="complie.test"
depends
="complie.java"
>
<
mkdir
dir
="${target.test.dir}"
/>
<
javac
destdir
="${target.test.dir}"
>
<
src
path
="${src.test.dir}"
>
</
src
>
<
classpath
>
<
pathelement
location
="${target.java.dir}"
/>
</
classpath
>
</
javac
>
</
target
>
<!--
- - - - - - - - - - - - - - - - -
target: complie java and test-java
- - - - - - - - - - - - - - - - -
-->

<
target
name
="complie"
depends
="complie.java,complie.test"
>
</
target
>

<!--
- - - - - - - - - - - - - - - - -
target: test
- - - - - - - - - - - - - - - - -
-->
<
target
name
="test"
depends
="complie"
>
<
mkdir
dir
="${target.report.dir}"
/>
<
junit
printsummary
="yes"
haltonerror
="yes"
haltonfailure
="yes"
fork
="yes"
>
<
formatter
type
="plain"
usefile
="flase"
/>
<
formatter
type
="xml"
/>
<
test
name
="t.MainClassTest"
todir
="${target.report.dir}"
>
</
test
>
<
classpath
>
<
pathelement
location
="${target.java.dir}"
/>
<
pathelement
location
="${target.test.dir}"
/>
<
pathelement
path
="${java.class.path}"
/>
</
classpath
>
</
junit
>
</
target
>
<
target
name
="report"
depends
="test"
>
<
mkdir
dir
="${target.report.dir}/html"
/>
<
junitreport
todir
="${target.report.dir}"
>
<
fileset
dir
="${target.report.dir}"
>
<
include
name
="TEST-*.xml"
/>
</
fileset
>
<
report
todir
="${target.report.dir}/html"
/>
</
junitreport
>
</
target
>
</
project
>
执行ant complie 没有问题,但是执行 ant test 就会出现在错误。经过一系列的查找与比较。最后发现是 ant1.7RC1的源码是的build.xml在执行的时候并没有把org.apache.tools.ant.taskdefs.optional.junit包下的类文件加入ant-junit.jar包中。只好通压缩软件加这个包下的所有class文件加入ant-junit.jar中。
现在执行ant report就可以了。
另外又发现一个问题是:
只有所有的测试都成功的时候才会生成report。否则就不会生成。这样有点不好吧。。。看来unit4还真得快点跑啊。
1、 将生成的bin目录和lib 目录放到一个目录。并把这个目录设置成ANT_HOME(不设置也可以,主要是为了方便),然后将ANT_HOME/bin加入path中。
2、将junit4.1.jar复制到ANT_HOME/lib目录下。
这个如果不加入的话,用ANT编译的时候就会提示找不到org.junit
加入之后。在Eclipse中运行ANT任务中的编译,还是提示找不到org.junit。找不到原因,只好在命令行中使用ANT了。
3、在一个junit4风格的测试(在Eclipse下很方便的啊)
4、单独运行(不用ANT)测试用例,成功,证明测试可以工作了。
5、在build.xml中加入<junit>和<junitreport>
完整的build.xml代码如下:





















































































执行ant complie 没有问题,但是执行 ant test 就会出现在错误。经过一系列的查找与比较。最后发现是 ant1.7RC1的源码是的build.xml在执行的时候并没有把org.apache.tools.ant.taskdefs.optional.junit包下的类文件加入ant-junit.jar包中。只好通压缩软件加这个包下的所有class文件加入ant-junit.jar中。
现在执行ant report就可以了。
另外又发现一个问题是:
只有所有的测试都成功的时候才会生成report。否则就不会生成。这样有点不好吧。。。看来unit4还真得快点跑啊。