xiekai-blog
北冥有魚,其名為鯤。鯤之大,不知其幾千里也。化而為鳥,其名為鵬。鵬之背,不知其幾千里也。怒而飛,其翼若垂天之云。是鳥也,海運則將徙于南冥。南冥者,天池也。
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-94 評論-56 文章-3 trackbacks-0
用Ant構(gòu)建Java項目(續(xù))
這一篇講述如何自動運行JUnit測試進行自動化測試。我們將JUnit測試放在test目錄。
第一步:編譯測試
首先,在build.xml文件里定義一個單獨的構(gòu)建目標,以便編譯測試源文件。
?
<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目錄編譯測試源文件,并將結(jié)果類文件放入build.test.dir目錄,用project.classpath路徑作為測試代碼的類路徑。
第二步:運行測試
在build.xml文件里定義構(gòu)建目標,使所有的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目標的依存關系。
如果構(gòu)建成功,意味著所有的東西不僅都編譯過,還都通過了測試。
將haltonfailure屬性設為true會使構(gòu)建隨著任何測試失敗而失敗。
這里我們再次用project.classpath定義了運行JUnit測試的類路徑。
下面定義了一個輸出格式化器,在<formatter> 元素中,使用brief類型來輸出每個運行的測試用例的名稱及其統(tǒng)計信息,僅當測試失敗時才有更詳細的信息(plain類型默認比brief類型輸出信息多一些;xml類型將測試結(jié)果以XML格式輸出)。將usefile屬性值設為false會將測試結(jié)果送往控制臺,而不是寫入文件。
<batchtest>任務收集從封閉<fileset>元素中返回的所有測試,并自動創(chuàng)建包含了所有測試的測試suite。我們將對所有的測試類用*Test.java命名約定取名,這些文件將編譯成*Test.class文件,放在<fileset>的build.test.dir性質(zhì)指向的目錄中。
最后,<sysproperty>元素定義系統(tǒng)性質(zhì)為一個鍵值對,這些性質(zhì)可以在測試代碼中訪問。這里,測試需要知道從哪里找到文檔,以及向哪里放入文檔的索引結(jié)果,在運行測試時我們將傳遞這些結(jié)果,例如,測試在運行時查看送入的doc.dir系統(tǒng)性質(zhì)來定位項目目錄結(jié)構(gòu)中doc目錄的絕對路徑。
要運行測試,請執(zhí)行test目標:
$?ant test
最后,打掃戰(zhàn)場
我們可以定義一個刪除所有構(gòu)建輸出的Ant目標。
?
<target name="clean">
??? <delete dir="${build.dir}" />
? </target>
clean目標使用<delete>任務來刪除build.dir所指的目錄。要刪除目錄,請運行clean目標:
$ ant clean
沖掉這些構(gòu)建輸出有積極的作用:從頭開始生成構(gòu)建,可以發(fā)現(xiàn)可能被累積構(gòu)建掩蓋的錯誤。
完整的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
>
下面再舉一個實際項目中用到的構(gòu)建文件的例子:
<?
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
>
???
也許你已經(jīng)看出來了,這就是〈〈jsp2.0技術(shù)手冊〉〉里面的build.xml文件啦!
posted on 2006-08-31 11:42
小言身寸
閱讀(780)
評論(0)
編輯
收藏
所屬分類:
JAVA相關技術(shù)
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Java學習從入門到精通的學習方法 (轉(zhuǎn))
利用MAP進行排序
Weblogic遠程重啟動命令
取得最小開始日期,JAVA中Set和Iterator的使用一例
WebLogic 如何設置session超時時間
RiA:Rich Internet Application(C/B/S架構(gòu))
用Ant構(gòu)建Java項目(續(xù))
用Ant構(gòu)建Java項目
TOMCAT創(chuàng)建和發(fā)布WEB應用(TOMCAT與Java Web開發(fā)技術(shù)詳解 第二章 閱讀筆記)
java中連接Oracle數(shù)據(jù)源
<%--
共有人在同時閱讀此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 開發(fā)(3)
eclipse plugin(3)
Eclipse/MyEclipse(4)
javascript(2)
JAVA相關技術(shù)(17)
UML(1)
應用服務器(4)
數(shù)據(jù)庫/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
得益網(wǎng)
Favorite Blog
ErixHao的專欄_模式深度思考
loveyeah
lzgsl的博客_IT日本語
千山鳥飛絕
外語學習資源
島田九美子
謙卑自牧,寬于待人_weblogic
Friend's Blog
jyuan-blog
一中的同學們
合肥java技術(shù)沙龍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.?電腦出現(xiàn)了以下提示不能啟動了"因以下文件的損壞或丟失windosws無法啟動WINDOWS/SYSTEN32/CONFIG/SYSTEM..."(12586)
4.?IT常用日語 (12038)
5.?Eclipse內(nèi)存溢出的解決之道 -vmargs -Xmx512M(11758)
評論排行榜
1.?vb.net中dataGridView的單元格的合并(18)
2.?查找EXCEL的一列中重復的數(shù)據(jù)(8)
3.?IT常用日語 (4)
4.?批量完成EXCEL表格目錄超鏈接(3)
5.?軟件高手是這樣練成的 —— 座右帖 (感覺太好了,轉(zhuǎn)載過來)(3)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 小言身寸
主站蜘蛛池模板:
精品国产日韩亚洲一区在线
|
国产jizzjizz免费视频
|
亚洲综合色婷婷七月丁香
|
黄页免费视频播放在线播放
|
国产高清免费在线
|
国产成人久久精品亚洲小说
|
国产一区二区三区免费视频
|
国产成人va亚洲电影
|
gogo全球高清大胆亚洲
|
一级人做人爰a全过程免费视频
|
亚洲区小说区图片区
|
a级毛片毛片免费观看久潮喷
|
成人免费视频观看无遮挡
|
亚洲综合精品第一页
|
黑人粗长大战亚洲女2021国产精品成人免费视频
|
羞羞的视频在线免费观看
|
亚洲国产电影av在线网址
|
aa毛片免费全部播放完整
|
亚洲bt加勒比一区二区
|
日韩欧毛片免费视频
|
亚洲中文字幕无码爆乳app
|
免费国产在线观看
|
99视频在线免费观看
|
亚洲精品在线网站
|
日韩在线免费看网站
|
国产日韩久久免费影院
|
91情国产l精品国产亚洲区
|
啦啦啦高清视频在线观看免费
|
精品一区二区三区免费毛片
|
国产亚洲精品美女久久久
|
免费能直接在线观看黄的视频
|
久久99热精品免费观看动漫
|
亚洲AV综合色区无码二区偷拍
|
男人天堂2018亚洲男人天堂
|
亚洲成AⅤ人影院在线观看
|
免费精品99久久国产综合精品
|
亚洲偷自精品三十六区
|
精品国产亚洲男女在线线电影
|
24小时在线免费视频
|
国产精品亚洲专区一区
|
久久精品视频亚洲
|