程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 用Ant自動測試JUnit

用Ant自動測試JUnit

編輯:關於JAVA

一、問題一 支持ANT的<junit>任務所需的jar包的配置。

Note: This task depends on external libraries not included in the Ant distribution. See Library Dependencies for more information.

注意:JUnit這個人物依賴於可選的庫,不包括在標准ant.jar中。

Note: You must have junit.jar and the class files for the <junit> task in the same classpath. You can do one of:

注意:你必須擁有junit.jar,並且這個類文件必須在同一個ant路徑下

Put both junit.jar and the optional tasks jar file in ANT_HOME/lib.

1,把junit.jar和可選任務jar(optional.jar) 文件放進ANT_HOME/lib目錄中。環境變量ANT_HOME = **\ant 這樣的目錄。

Do not put either in ANT_HOME/lib, and instead include their locations in your CLASSPATH environment variable.

2,如果不把junit.jar和可選任務jar(optional.jar) 文件放進ANT_HOME/lib目錄中,那麼可以這樣做: 把這兩個jar文件的絕對路徑(包括文件名)寫進你的系統環境變量CLASSPATH中。

Do neither of the above, and instead, specify their locations using a <classpath> element in the build file. See the FAQ for details.

3,如果你不想做上面那2個辦法,那麼,你可以這樣:

在構造文件ant中,使用<classpath>元素,指定junit.jar和可選任務jar(optional.jar) 文件的位置。

下面是成功的例子:

<?xml version="1.0"?>
<project name="project" default="junit">
<property name="run.classpath" value="bin"></property>
<property name="run.srcpath" value="src"></property>
<property name="test.srcpath" value="test"></property>
<property name="test.report" value="report"></property>
<property name="lib.dir" value="lib"/>
<path id="compile.path">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- Compilation Classpath
<path id="compile.classpath">
<fileset dir="${telecom_LDBS.lib}">
<include name="**/*.jar"/>
</fileset>
</path>
-->
<target name="compile">
<javac destdir="${run.classpath}" srcdir="${run.srcpath}"
classpathref="compile.path"/>
<javac destdir="${run.classpath}" srcdir="${test.srcpath}"
classpathref="compile.path"/>
</target>
<target name="junit" depends="compile">
<tstamp/>
<mkdir dir="${test.report}"/>
<mkdir dir="${test.report}/framework-${DSTAMP}-${TSTAMP}"/>
<junit printsummary="true">
<classpath >
<pathelement path="${run.classpath}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</classpath>
<!--
<test name="Ldbs1AdslSectionBaseinfoModelServiceTest"></test>
-->
<formatter type="plain"/>
<!-- she zhi yao ce shi de wen jian ji he .-->
<batchtest fork="yes" todir="${test.report}/framework-${DSTAMP}-${TSTAMP}">
<fileset dir="${test.srcpath}">
<include name="**/*Test.java"/>
</fileset>
</batchtest>
</junit>
</target>
</project>

上面這個例子,可以在cmd命令行中運行。

如果要直接在Eclipse中運行,則需要改變ant的設置。

使用eclipse可以按照一下步驟加入:

Windows-Preference-Ant-Runtime-Ant Home Entries

窗口—首選項—ant—運行時—類路徑—Ant主目錄條目,然後添加外部jar。 主要添加我們ANT_HOME中的junit.jar這個文件即可。 實際不需要optional.jar這個文件。

因為,org.apache.ant_1.6.2\lib\ant-junit.jar這個文件,就是一個Ant中JUnit任務可選項的擴展.jar文件,現在缺的只是ANT可以找到的JUnit的jar文件。 因為,Ant類似於SpringFramework,它托管管理了JUnit,但是實際功能還是委派給JUnit.jar來實現的!

二、問題二 JUnit任務的classpath支持類路徑的設置的問題

這也是一個錯誤點!

示例中是:

<junit printsummary="true">
<classpath>
<pathelement path="${run.classpath}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</classpath>

其中

<property name="run.classpath" value="bin"></property>
<property name="lib.dir" value="lib"/>

實際上,這就是我們在 <junit〉任務下, 我們使用了編譯後的.class文件的目錄,還有編譯所需的jar包所在的目錄。 缺一不可! 否則一定會報ClassNotFoundException類未找到異常!

因為,JUnit任務,實際就是為我們運行Test類,而不僅僅是想我們的發布Ant文件那樣僅僅是javac 編譯,只需要編譯所需的Jar包。

我們還需要像java任務那樣運行.class文件。 所以必須包括編譯後的.class文件。

OK!搞定這兩個問題後,我們就可以順利地自動批量執行JUnit測試了!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved