xiekai-blog
北冥有魚,其名為鯤。鯤之大,不知其幾千里也。化而為鳥,其名為鵬。鵬之背,不知其幾千里也。怒而飛,其翼若垂天之云。是鳥也,海運則將徙于南冥。南冥者,天池也。
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-94 評論-56 文章-3 trackbacks-0
用Ant構建Java項目(續)
這一篇講述如何自動運行JUnit測試進行自動化測試。我們將JUnit測試放在test目錄。
第一步:編譯測試
首先,在build.xml文件里定義一個單獨的構建目標,以便編譯測試源文件。
?
<target name="compile-tests" depends="compile">
??? <javac srcdir="${test.dir}" destdir="${build.test.dir}">
????? <classpath refid="project.classpath" />
??? </javac>
? </target>
compile-tests目標用<javac>任務在test.dir目錄編譯測試源文件,并將結果類文件放入build.test.dir目錄,用project.classpath路徑作為測試代碼的類路徑。
第二步:運行測試
在build.xml文件里定義構建目標,使所有的JUnit測試自動運行。
?
<target name="test" depends="compile-tests">
??? <junit haltonfailure="true">
????? <classpath refid="project.classpath" />
????? <formatter type="brief" usefile="false" />
????? <batchtest>
??????? <fileset dir="${build.test.dir}"
????????? includes="**/*Test.class" />
????? </batchtest>
????? <sysproperty key="doc.dir"?? value="${doc.dir}" />
????? <sysproperty key="index.dir" value="${index.dir}" />
??? </junit>
? </target>
test目標的depends屬性生成與剛定義的compile-tests目標的依存關系。
如果構建成功,意味著所有的東西不僅都編譯過,還都通過了測試。
將haltonfailure屬性設為true會使構建隨著任何測試失敗而失敗。
這里我們再次用project.classpath定義了運行JUnit測試的類路徑。
下面定義了一個輸出格式化器,在<formatter> 元素中,使用brief類型來輸出每個運行的測試用例的名稱及其統計信息,僅當測試失敗時才有更詳細的信息(plain類型默認比brief類型輸出信息多一些;xml類型將測試結果以XML格式輸出)。將usefile屬性值設為false會將測試結果送往控制臺,而不是寫入文件。
<batchtest>任務收集從封閉<fileset>元素中返回的所有測試,并自動創建包含了所有測試的測試suite。我們將對所有的測試類用*Test.java命名約定取名,這些文件將編譯成*Test.class文件,放在<fileset>的build.test.dir性質指向的目錄中。
最后,<sysproperty>元素定義系統性質為一個鍵值對,這些性質可以在測試代碼中訪問。這里,測試需要知道從哪里找到文檔,以及向哪里放入文檔的索引結果,在運行測試時我們將傳遞這些結果,例如,測試在運行時查看送入的doc.dir系統性質來定位項目目錄結構中doc目錄的絕對路徑。
要運行測試,請執行test目標:
$?ant test
最后,打掃戰場
我們可以定義一個刪除所有構建輸出的Ant目標。
?
<target name="clean">
??? <delete dir="${build.dir}" />
? </target>
clean目標使用<delete>任務來刪除build.dir所指的目錄。要刪除目錄,請運行clean目標:
$ ant clean
沖掉這些構建輸出有積極的作用:從頭開始生成構建,可以發現可能被累積構建掩蓋的錯誤。
完整的build.xml:
<?
xml?version="1.0"
?>
<!--
??Excerpted?from?the?book,?"Pragmatic?Project?Automation"
??ISBN?0-9745140-3-9
??Copyright?2004?The?Pragmatic?Programmers,?LLC.??All?Rights?Reserved.
??Visit?www.PragmaticProgrammer.com
?
-->
<
project?
name
="dms"
?default
="compile"
?basedir
="."
>
??
??
<
property?
name
="build.dir"
??????location
="build"
/>
??
<
property?
name
="build.prod.dir"
?location
="${build.dir}/prod"
/>
??
<
property?
name
="build.test.dir"
?location
="${build.dir}/test"
/>
??
<
property?
name
="doc.dir"
????????location
="doc"
/>
??
<
property?
name
="index.dir"
??????location
="index"
/>
??
<
property?
name
="src.dir"
????????location
="src"
/>
??
<
property?
name
="test.dir"
???????location
="test"
/>
??
<
property?
name
="vendor.lib.dir"
?location
="vendor/lib"
/>
??
<
path?
id
="project.classpath"
>
????
<
pathelement?
location
="${build.prod.dir}"
?
/>
????
<
pathelement?
location
="${build.test.dir}"
?
/>
????
<
fileset?
dir
="${vendor.lib.dir}"
>
??????
<
include?
name
="*.jar"
/>
????
</
fileset
>
??
</
path
>
????
??
<
target?
name
="prepare"
>
????
<
mkdir?
dir
="${build.prod.dir}"
/>
????
<
mkdir?
dir
="${build.test.dir}"
/>
??
</
target
>
??
<
target?
name
="compile"
?depends
="prepare"
>
????
<
javac?
srcdir
="${src.dir}"
?destdir
="${build.prod.dir}"
>
??????
<
classpath?
refid
="project.classpath"
?
/>
????
</
javac
>
??
</
target
>
??
<
target?
name
="compile-tests"
?depends
="compile"
>
????
<
javac?
srcdir
="${test.dir}"
?destdir
="${build.test.dir}"
>
??????
<
classpath?
refid
="project.classpath"
?
/>
????
</
javac
>
??
</
target
>
??
<
target?
name
="test"
?depends
="compile-tests"
>
????
<
junit?
haltonfailure
="true"
>
??????
<
classpath?
refid
="project.classpath"
?
/>
??????
<
formatter?
type
="brief"
?usefile
="false"
?
/>
??????
<
batchtest
>
????????
<
fileset?
dir
="${build.test.dir}"
?
??????????includes
="**/*Test.class"
?
/>
??????
</
batchtest
>
??????
<
sysproperty?
key
="doc.dir"
???value
="${doc.dir}"
?
/>
??????
<
sysproperty?
key
="index.dir"
?value
="${index.dir}"
?
/>
????
</
junit
>
??
</
target
>
??
<
target?
name
="clean"
>
????
<
delete?
dir
="${build.dir}"
?
/>
??
</
target
>
??
</
project
>
下面再舉一個實際項目中用到的構建文件的例子:
<?
xml?version="1.0"?
?>
<
project?
name
="JSBook"
?default
="compile"
?basedir
="."
>
??
<
property?
environment
="env"
?
/>
??
<
property?
name
="src"
?value
="WEB-INF/src"
?
/>
??
<
property?
name
="classes"
?value
="WEB-INF/classes"
?
/>
??
<
property?
name
="lib"
?value
="WEB-INF/lib"
?
/>
?
??
<
property?
name
="dist"
?value
="dist"
?
/>
??
??
<
path?
id
="task.classpath"
>
????
<
pathelement?
location
="${classes}"
?
/>
????
<
pathelement?
location
="${lib}"
?
/>
?
????
<!--
?Tomcat?5.0.16?Servlet?2.4?API?
-->
????
<
pathelement?
location
="${lib}/servlet-api.jar"
?
/>
????
<!--
?Tomcat?5.0.16?JSP?2.0?API?
-->
????
<
pathelement?
location
="${lib}/jsp-api.jar"
?
/>
??
</
path
>
????
??
<
target?
name
="init"
?
>
????
<
echo
>
Init?Complete?!
</
echo
>
????
<
echo
>
ant?home?=?${ant.home}?
</
echo
>
????
<
echo
>
java?home?=?${java.home}?
</
echo
>
????
<
echo
>
user?home?=?${user.home}?
</
echo
>
??????
??
</
target
>
??
??
<
target?
name
="compile"
?depends
="init"
?
>
????
<
javac?
classpathref
="task.classpath"
?srcdir
="${src}"
?destdir
="${classes}"
?
/>
????
<
echo?
level
="verbose"
>
Seen?with?-verbose
</
echo
>
????
<
echo?
level
="debug"
>
Seen?with?-debug
</
echo
>
????????
????
<
echo
>
Compilation?Complete?!
</
echo
>
??
</
target
>
??
??
<
target?
name
="war"
?
>
????
<
jar?
jarfile
="${dist}/JSPBook.war"
?basedir
="."
/>
??
</
target
>
</
project
>
???
也許你已經看出來了,這就是〈〈jsp2.0技術手冊〉〉里面的build.xml文件啦!
posted on 2006-08-31 11:42
小言身寸
閱讀(780)
評論(0)
編輯
收藏
所屬分類:
JAVA相關技術
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Java學習從入門到精通的學習方法 (轉)
利用MAP進行排序
Weblogic遠程重啟動命令
取得最小開始日期,JAVA中Set和Iterator的使用一例
WebLogic 如何設置session超時時間
RiA:Rich Internet Application(C/B/S架構)
用Ant構建Java項目(續)
用Ant構建Java項目
TOMCAT創建和發布WEB應用(TOMCAT與Java Web開發技術詳解 第二章 閱讀筆記)
java中連接Oracle數據源
<%--
共有人在同時閱讀此Blog。
--%>
<%--
--%>
<
2006年8月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
. NET 開發(3)
eclipse plugin(3)
Eclipse/MyEclipse(4)
javascript(2)
JAVA相關技術(17)
UML(1)
應用服務器(4)
數據庫/SQL語言(11)
日本見聞(2)
日語相關(24)
軟件應用(11)
軟件測試(2)
雷人語錄
電子商務?物流(1)
音樂之聲(2)
項目管理(7)
隨筆檔案
2010年8月 (2)
2010年7月 (1)
2010年6月 (1)
2010年2月 (1)
2009年10月 (1)
2009年7月 (2)
2009年6月 (2)
2008年10月 (1)
2008年8月 (5)
2008年2月 (3)
2008年1月 (1)
2007年12月 (1)
2007年11月 (4)
2007年10月 (2)
2007年7月 (3)
2007年6月 (1)
2007年5月 (1)
2007年2月 (3)
2007年1月 (5)
2006年12月 (4)
2006年10月 (11)
2006年9月 (9)
2006年8月 (12)
2006年7月 (9)
2006年6月 (7)
文章分類
千葉集(2)
日語動詞(初中級)(1)
文章檔案
2006年12月 (1)
2006年11月 (1)
2006年9月 (1)
相冊
夜色下的中科大一角
私の寫真館001
私の寫真館002
私の寫真館003
ebook_download
pl/sql
VB6/VB.net
得益網
Favorite Blog
ErixHao的專欄_模式深度思考
loveyeah
lzgsl的博客_IT日本語
千山鳥飛絕
外語學習資源
島田九美子
謙卑自牧,寬于待人_weblogic
Friend's Blog
jyuan-blog
一中的同學們
合肥java技術沙龍No.1
musics
200661880202513.mp3
Others
kaisyamail
小小世界
smallworld 20030512 手機鈴聲下載
小曉日語的G寶盆
我的G寶盤
最新評論
1.?re: IBM WAS簡介
十大US和登記卡時代科技愛好是大號的金卡和登記卡
--武漢市
2.?re: vb.net中dataGridView的單元格的合并
合并的單元格無法選中,如何解決,還有我想在合并的單元個里繪checkbox怎么弄
--ヒツ
3.?re: 批量完成EXCEL表格目錄超鏈接[未登錄]
謝謝!借用了!雖然不知道公式的含義!
--小莫
4.?re: vb.net中dataGridView的單元格的合并
你好,可以寄一份源碼給我嗎?keobo.wang@deltaww.com.cn
--uyfghfv
5.?re: vb.net中dataGridView的單元格的合并
可以寄一份vb.net源碼給我嗎?
ms101690@pchome.com.tw
--Surfing
閱讀排行榜
1.?IBM WAS簡介(35856)
2.?vb.net中dataGridView的單元格的合并(12705)
3.?電腦出現了以下提示不能啟動了"因以下文件的損壞或丟失windosws無法啟動WINDOWS/SYSTEN32/CONFIG/SYSTEM..."(12586)
4.?IT常用日語 (12038)
5.?Eclipse內存溢出的解決之道 -vmargs -Xmx512M(11759)
評論排行榜
1.?vb.net中dataGridView的單元格的合并(18)
2.?查找EXCEL的一列中重復的數據(8)
3.?IT常用日語 (4)
4.?批量完成EXCEL表格目錄超鏈接(3)
5.?軟件高手是這樣練成的 —— 座右帖 (感覺太好了,轉載過來)(3)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 小言身寸
主站蜘蛛池模板:
立即播放免费毛片一级
|
亚洲1区1区3区4区产品乱码芒果
|
一本一道dvd在线观看免费视频
|
最近免费中文字幕mv在线电影
|
亚洲精品午夜无码专区
|
一本大道一卡二大卡三卡免费
|
亚洲一区二区高清
|
国产精品永久免费
|
国产成人无码综合亚洲日韩
|
国产免费拔擦拔擦8X高清在线人
|
亚洲无线码一区二区三区
|
中文字幕免费在线视频
|
亚洲avav天堂av在线不卡
|
免费无码中文字幕A级毛片
|
亚洲黄色高清视频
|
亚洲视频免费观看
|
亚洲欧洲免费无码
|
亚洲AV无码成H人在线观看
|
午夜不卡AV免费
|
亚洲精品乱码久久久久久久久久久久
|
成人毛片免费播放
|
视频一区在线免费观看
|
久久亚洲高清综合
|
久久精品无码专区免费青青
|
亚洲精品国产精品国自产网站
|
日韩免费福利视频
|
久99久无码精品视频免费播放
|
香蕉蕉亚亚洲aav综合
|
青草草色A免费观看在线
|
婷婷亚洲综合一区二区
|
亚洲中文字幕在线观看
|
91高清免费国产自产
|
亚洲av永久无码精品秋霞电影秋
|
日韩精品免费在线视频
|
麻豆狠色伊人亚洲综合网站
|
免费一区二区三区四区五区
|
在线观看片免费人成视频无码
|
中文字幕在线观看亚洲视频
|
免费永久在线观看黄网站
|
baoyu116.永久免费视频
|
亚洲国产最大av
|