posts - 262,  comments - 221,  trackbacks - 0
<project name="autobuildtest" default="test">    
    
<target name="setProperties">

        
<property name="src.dir" value="src"/>
        
<property name="classes.dir" value="classes"/>
       
</target>
    
    
<target name="prepareDir" depends="setProperties">
        
<delete dir="${classes.dir}"/>
        
<mkdir dir="${classes.dir}"/>
    
</target>
    
    
    
<target name="compile" depends="prepareDir">
        
<javac srcdir="./src" destdir="${classes.dir}"/>     
    
</target>

    
    
<target name="test" depends="compile">
        
<junit printsummary="yes">
            
<test name="onlyfun.caterpillar.test.MathToolTest"/>
          
<classpath>
              <pathelement location="${classes.dir}"/>
          </classpath>
        
</junit>
    
</target> 
</project>
 

上面XML文件高亮处描述了Ant如何与JUnit结合进行自动化测试,name属性是你要测试的TestCase,classpath元素指明了TestCase的路径,printsummary说明了要将测试的结果简单的显示出来。

如何吧JUnit测试的详细信息显示出来呢?我们可以采用<formatter>元素,如下所示:

<junit printsummary="yes">

    
<formatter type="plain" usefile="false"/>

    
<test name="onlyfun.caterpillar.test.MathToolTest"/>
      
<classpath>
        
<pathelement location="${classes.dir}"/>
      
</classpath>         
</junit>

当usefile属性设定为true时,会自动帮您将产生的结果储存在档案中,预设是TEST-*.txt,其中*是您的测试案例类别名称。除此之外,我们也可用采用XML的格式来保存测试结果。如下所示:

<formatter type="xml"/>

也可以将测试结果所产生的XML文件转换为HTML文件,使用Ant可以直接帮您完成这个工作,<junitreport>标签使用 XSLT将XML文件转换为HTML文件

<project name="autobuildtest" default="report">

    
<target name="setProperties">
        
<property name="src.dir" value="src"/>
        
<property name="classes.dir" value="classes"/>
        
<property name="report.dir" value="report"/>    
    
</target>
    
    
<target name="prepareDir" depends="setProperties">
        
<delete dir="${report.dir}"/>
        
<delete dir="${classes.dir}"/>
        
<mkdir dir="${report.dir}"/>
        
<mkdir dir="${classes.dir}"/>
    
</target>

    
<target name="compile" depends="prepareDir">
        
<javac srcdir="./src" destdir="${classes.dir}"/>
    
</target>
    
    
<target name="test" depends="compile">
        
<junit printsummary="yes">
            
<formatter type="xml"/>
            
<test name="onlyfun.caterpillar.test.MathToolTest"
                    todir="${report.dir}"
/>
            
<classpath>
                
<pathelement location="${classes.dir}"/>
            
</classpath>
        
</junit>
    
</target>

    
<target name="report" depends="test">
        
<junitreport todir="${report.dir}">
        
<fileset dir="${report.dir}">
            
<include name="TEST-*.xml"/>
        
</fileset>
        
<report format="frames" todir="${report.dir}/html"/>
    </junitreport>
    
</target> 
</project>

上面的例子,首先定义了一个property,用于指向保存测试结果的目录,接着在<test>元素中通过<todir>将结果指向该目录。然后report目标首先在todir属性指定的目录下查找名称包含:TESTd的XML文件,找到之后通过XSL转换成带frame的HTML页面,存放到子目录html下面

最终的结果可能如下:




-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2008-04-21 15:21 Paul Lin 阅读(649) 评论(0)  编辑  收藏 所属分类: Java 工具

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(21)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜