ant中使用junit4.1

        想在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还真得快点跑啊。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值