您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > junit
使用Grester簡(jiǎn)化Java應(yīng)用程序的JUnit測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/22 14:37:43 ] 推薦標(biāo)簽:

必須注意的是 Grester 安裝在 Maven 的本地系統(tǒng)庫(kù)中的位置。如果不熟悉 Maven,則其默認(rèn)本地系統(tǒng)庫(kù)為 $USER_HOME/.m2/repository/。默認(rèn)情況下,在運(yùn)行 Windows 的計(jì)算機(jī)中,$USER_HOME 很可能被轉(zhuǎn)換為 Documents and Settings/$USERNAME/(其中 $USERNAME 是登錄的用戶)。在 Linux/UNIX 計(jì)算機(jī)中,$USER_HOME 將轉(zhuǎn)換成 /home/$USERNAME/?焖贋g覽 Windows 本地系統(tǒng)庫(kù)可以發(fā)現(xiàn) Grester 被安裝到 C:/Documents and Settings/$USERNAME/.m2/repository/org/apache/maven/plugins 中,并且創(chuàng)建了一個(gè)名為 maven-grester-plugin 的目錄。此目錄包含版本號(hào)目錄(新版本是 V0.3);該目錄中有實(shí)際的 maven-grester-plugin-x.x.jar 文件。

使用此結(jié)構(gòu)的原因在于 Grester 的 pom.xml 文件。如圖 6 所示,Grester 項(xiàng)目的 groupId 是 org.apache.maven.plugins。用包含此字符串作為 groupId 值的 Java 或 Groovy 語(yǔ)言編寫(xiě)的所有 Maven 插件,相比擁有其他一些任意 groupId 的 Maven 插件,都包含更易于通過(guò)命令行執(zhí)行的 mojo。由于 Grester 將使用此字符串,因此在通過(guò)命令行執(zhí)行各個(gè) mojo 目標(biāo)時(shí),您無(wú)需預(yù)先考慮 groupId 和 artifactId。

圖 6. Grester 的 pom.xml 配置文件中的 groupId

maven-grester-plugin 目錄是在安裝時(shí)創(chuàng)建的(install 目標(biāo)將創(chuàng)建此目錄),如下所示。其他標(biāo)準(zhǔn) Maven 插件都安裝在同一個(gè)上級(jí)目錄中,例如 maven-surefire-plugin 和 maven-install-plugin 目錄。

圖 7. Maven 的本地系統(tǒng)庫(kù)中的 Grester

如果項(xiàng)目的自定義組 ID 和工件 ID 太長(zhǎng)且很難記或者只是重復(fù)鍵入很麻煩,那么使用特殊的 groupId 字符串十分有利。這是默認(rèn)插件(例如,maven-compiler-plugin 或 maven-surefire-plugin)的基本 Maven 目標(biāo)(例如 compile、test,或者 test-compile)在執(zhí)行時(shí)不需要諸如 mvn org.apache.maven.plugin:maven-compiler-plugin:2.0.2:compile 或 mvn org.apache.maven.plugin:maven-surefire-plugin:2.3:test 之類的命令的原因(只需 mvn compile 或 mvn test)。

將 Jester 安裝為 Grester 的主要依賴關(guān)系

此時(shí),除了 Grester 的核心 —— 實(shí)際的 Jester 依賴關(guān)系之外其他內(nèi)容都已緒。Windows 和 Linux/UNIX 平臺(tái)提供了兩個(gè)方便的腳本,它們可以把 Jester(即,實(shí)際的 jester-1.37.jar 文件)安裝到 Maven 的本地系統(tǒng)庫(kù)中。為什么提供這些腳本?難道不能在 Maven 獲得其編譯器、安裝程序和其他插件依賴關(guān)系時(shí)從 Maven 所在的相同外部資源中下載這些腳本么?答案是 Jester 沒(méi)有放在可公開(kāi)獲得的已知 Maven 系統(tǒng)庫(kù)中(例如,Maven 的 Ibiblio),因此您不能用包含 Jester 的遠(yuǎn)程系統(tǒng)庫(kù)來(lái)配置 Maven 的 $MAVEN_HOME/conf/settings.xml 文件(不考慮用 groupId-artifactId 版本組合安裝它的方法)。

因此,分別為 Windows 和 Linux/UNIX 提供了 install-jester.bat 和 install-jester.sh 可執(zhí)行文件。如果任何一個(gè)可執(zhí)行文件在任意平臺(tái)上執(zhí)行失敗,都可以使用如下所示的命令作為解決方法。

圖 8. 建立 Jester 依賴關(guān)系

注:我寫(xiě)完這篇文章后,Grester V1.0.1 被發(fā)布到 Maven 公共系統(tǒng)庫(kù) 中。這種持續(xù)不斷地改進(jìn)意味著您現(xiàn)在可以直接從的 Apache 系統(tǒng)庫(kù)中獲得插件,但是仍然需要有提供結(jié)合功能的 Jester 核心 JAR 和指令才能構(gòu)成完整的架構(gòu)。

在示例 Maven 項(xiàng)目中使用 Grester

那么,您已經(jīng)得到了一個(gè)精心編織的 Maven 項(xiàng)目,并且希望在單元測(cè)試(或者至少在一組測(cè)試中)中測(cè)試 Jester。無(wú)論是單元測(cè)試還是集成測(cè)試,明智的做法是要么把項(xiàng)目復(fù)制到文件系統(tǒng)中的某個(gè)位置并對(duì)該副本運(yùn)行 Jester,要么使用現(xiàn)有副本,但是要準(zhǔn)備好恢復(fù)對(duì)代碼源文件所做的所有更改。這是因?yàn)?Jester 將更改現(xiàn)有的源代碼文件,保存更改并重新編譯代碼(保留同一個(gè)目錄中的類文件作為源文件)。如果項(xiàng)目擁有的代碼庫(kù)相對(duì)較小或者所選測(cè)試很少,則可以使用現(xiàn)有代碼庫(kù)副本。

在 Eclipse 中設(shè)置示例文件

以測(cè)試為例,您將使用在 Eclipse IDE 中構(gòu)造和準(zhǔn)備的基本 Maven 項(xiàng)目。雖然 參考資料 部分包含關(guān)于如何操作的鏈接和信息,但是如何在特定開(kāi)發(fā)環(huán)境內(nèi)構(gòu)造 Maven 項(xiàng)目和創(chuàng)建必要文件不在本文討論范圍內(nèi)。圖 9 演示了 Eclipse IDE 內(nèi)的項(xiàng)目。

圖 9. Eclipse IDE 中的示例 Maven 項(xiàng)目

舉例來(lái)說(shuō),在項(xiàng)目中使用一個(gè)相對(duì)簡(jiǎn)單的類和測(cè)試類。該類將使用 Java 語(yǔ)言處理外部過(guò)程命令的執(zhí)行。清單 3 顯示了測(cè)試的類的主要部分。

上一頁(yè)12345下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd