在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 物聯(lián)網(wǎng)/ 測(cè)試Java應(yīng)用
依賴管理實(shí)戰(zhàn)
配置遠(yuǎn)程倉(cāng)庫(kù)
安裝Gradle
簡(jiǎn)介
項(xiàng)目自動(dòng)化簡(jiǎn)介
配置子項(xiàng)目
Gradle強(qiáng)大的特性
自動(dòng)化測(cè)試
簡(jiǎn)介
掌握構(gòu)建生命周期
使用命令行操作
構(gòu)建Java項(xiàng)目
管理任務(wù)
構(gòu)建工具
連續(xù)傳遞的特性
用Gradle開發(fā)Web項(xiàng)目
聲明依賴
構(gòu)建塊
簡(jiǎn)介
測(cè)試Java應(yīng)用
java構(gòu)建工具
為什么選擇Gradle
拆分項(xiàng)目文件
單元測(cè)試
多項(xiàng)目打包
Gradle 起步
介紹這個(gè)Gradle項(xiàng)目
簡(jiǎn)介
自定義腳本
Gradle包裝器
簡(jiǎn)要概述依賴管理
項(xiàng)目模塊化

測(cè)試Java應(yīng)用

一些開源的測(cè)試框架比如JUnit,TestNG能夠幫助你編寫可復(fù)用的結(jié)構(gòu)化的測(cè)試,為了運(yùn)行這些測(cè)試,你要先編譯它們,就像編譯源代碼一樣。測(cè)試代碼的作用僅僅用于測(cè)試的情況,你可不想把你的測(cè)試代碼發(fā)布到生產(chǎn)環(huán)境中,把源代碼和測(cè)試代碼混在一起可不是個(gè)好主意。通常你會(huì)把源代碼和測(cè)試代碼分開來(lái),比如Gradle的標(biāo)準(zhǔn)項(xiàng)目布局src/main/java和src/test/java。

項(xiàng)目布局

在前面我們講到默認(rèn)的項(xiàng)目布局,源代碼是src/main/java,資源文件是在src/main/resources,測(cè)試源代碼路徑也是這樣,你把測(cè)試代碼放在src/test/java,資源文件放在src/test/resources,編譯之后測(cè)試的class文件在build/classes/test下。

所有的測(cè)試框架都會(huì)生成至少一個(gè)文件用來(lái)說(shuō)明測(cè)試執(zhí)行的結(jié)果,最普遍的格式就是XML格式,你可以在build/test-results路徑下找到這些文件,XML文件的可讀性比較差,許多測(cè)試框架都允許把測(cè)試結(jié)果轉(zhuǎn)換成報(bào)告,比如JUnit可以生成HTML格式的報(bào)告,Gradle把測(cè)試報(bào)告放在build/reports/test。下圖清晰的顯示了項(xiàng)目的布局:

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag51.png" alt="" />

上面講了這么多測(cè)試框架,Gradle怎么知道你想使用哪一個(gè)呢?你需要聲明對(duì)外部庫(kù)的依賴。

測(cè)試配置

Java插件引入了兩個(gè)配置來(lái)聲明測(cè)試代碼的編譯期和運(yùn)行期依賴:testCompile和testRuntime,我們來(lái)看一下怎么聲明一個(gè)對(duì)JUnit框架的編譯期依賴:

    dependencies {
        testCompile 'junit:junit:4.11'
    }

另外一個(gè)配置testRuntime用來(lái)聲明那些編譯期用不著但是在運(yùn)行期需要的依賴,記住用于測(cè)試的依賴不會(huì)影響你源代碼的classpath,換句話說(shuō)他們不會(huì)用在編譯或打包過(guò)程。然而,對(duì)于處理依賴來(lái)講測(cè)試配置繼承了源代碼相關(guān)配置,比如testCompile繼承了compile配置的依賴,testRuntime繼承了runtime和testCompile和他們的父類,他們父類的依賴會(huì)自動(dòng)傳遞到testCompile或testRuntime中。如下圖所示:

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag52.png" alt="" />

測(cè)試任務(wù)

在之前的任務(wù)我們可能注意到任務(wù)圖一直有四個(gè)任務(wù)是up-to-date的然后被跳過(guò)了,這是因?yàn)槟銢](méi)有編寫任何測(cè)試代碼Gradle就不需要編譯或執(zhí)行。下圖顯示了這四個(gè)任務(wù)在任務(wù)圖中的位置:

http://wiki.jikexueyuan.com/project/gradleIn-action/images/dag53.png" alt="" />

從圖中可以看到測(cè)試編譯和測(cè)試執(zhí)行階段是在源代碼被編譯和打包之后的,如果你想避免執(zhí)行測(cè)試階段你可以在命令行執(zhí)行g(shù)radle jar或者讓你的任務(wù)依賴jar任務(wù)。

自動(dòng)測(cè)試檢查

對(duì)于build/classes/test目錄下的所有編譯的測(cè)試類,Gradle怎么知道要執(zhí)行哪一個(gè)呢?答案就是所有匹配下面幾條描述的都會(huì)被檢查:

  • 任何繼承自junit.framework.TestCase 或groovy.util.GroovyTestCase的類
  • 任何被@RunWith注解的子類
  • 任何至少包含一個(gè)被@Test注解的類

如果沒(méi)有找到符合條件的,測(cè)試就不會(huì)執(zhí)行,接下來(lái)我們會(huì)使用不同框架來(lái)編寫單元測(cè)試。

上一篇:簡(jiǎn)介下一篇:簡(jiǎn)介