用Ant和JUnit构建自动化测试

  Ant可以进行自动化建构,而JUnit可以进行自动化测试,Ant可以与JUnit结合,使得自动化的建构与测变得可行。

  我们使用之前的测试案例来示范如何将Ant结合JUnit以进行自动化建构与测试,之前的测试案例是:
http://www.caterpillar.onlyfun.net/phpBB2/viewtopic.php?t=981

  Ant
使用<junit>任务来设定JUnit测试,下面直接示范一个简单的例子:

代码:

<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> 
     <!--JUnit测试-->
     <target name="test" depends="compile">
         <junit printsummary="yes">
             <test name="ObjectIOManagerTest"/>
             <classpath>
                 <pathelement location="${classes.dir}"/>
             </classpath>
         </junit>
     </target>
</project>

 



printsummary
属性会将测试的结果简单的显示出来,<test>name属性是设定要进行测试的案例类别,Ant建构与调用JUnit进行测试的讯息如下:

代码:

Buildfile: build.xml

setProperties:

prepareDir:
     [mkdir] Created dir: D:/temp/classes

compile:
     [javac] Compiling 3 source files to D:/temp/classes

test:
     [junit] Running ObjectIOManagerTest
     [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.14 sec


BUILD SUCCESSFUL
Total time: 7 seconds



您也可以将JUnit的测试过程在Ant建构的过程讯息中显示出来,只要加入<formatter>标签设定即可:

代码:

<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">
             <formatter type="plain" usefile="false"/>
             <test name="ObjectIOManagerTest"/>
             <classpath>
                 <pathelement location="${classes.dir}"/>
             </classpath>
         </junit>
     </target>
</project>



Ant
建构与调用JUnit进行测试的讯息如下:

代码:

Buildfile: build.xml

setProperties:

prepareDir:
     [mkdir] Created dir: D:/temp/classes

compile:
     [javac] Compiling 3 source files to D:/temp/classes

test:
     [junit] Running ObjectIOManagerTest
     [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.18 sec

     [junit] Testsuite: ObjectIOManagerTest
     [junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.18 sec
     [junit] ------------- Standard Output ---------------
     [junit] Writing data to test.dat ... done
     [junit] Reading data from test.dat ... done
     [junit] Writing data to test.dat ... done
     [junit] Reading data from test.dat ... done
     [junit] ------------- ---------------- ---------------

     [junit] Testcase: testSimpleObjectIO took 0.09 sec
     [junit] Testcase: testStudentObjectIO took 0.08 sec


BUILD SUCCESSFUL
Total time: 8 seconds



<formatter>
标签还可以设定将测试的结果,以XML文件储存下来,一个撰写的例子如下,它将测试的结果储存至report目录中,文件名称为TEST-*.xml*是您的测试案例类别名称:

代码:

<project name="autobuildtest" default="test">
     <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="ObjectIOManagerTest" todir="${report.dir}"/>
             <classpath>
                 <pathelement location="${classes.dir}"/>
             </classpath>
         </junit>
     </target>
</project>



您也可以将测试结果所产生的XML文件转换为HTML文件,使用Ant可以直接帮您完成这个工作,<junitreport>标签使用XSLTXML文件转换为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="ObjectIOManagerTest" 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>



<include>
设定搜寻TEST-*.xml文件,将之转换为HTML文件,而最后的结果我们设定储存至report/html/目录下,format属性中我们设定HTML文件具有框架,如果不设定这个属性则HTML报告文件就不具有框架。

答复但是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值