2012-01-25 167 views
4

有沒有辦法在gradle中構建自定義測試階段?gradle測試階段?

我有一系列的測試,即

/unit 
/local 
/remote 

其運行JUnit測試管理爲幾個不同的目的。我希望能夠將這些作爲測試階段運行,例如gradle test:unit或類似的東西。理想情況下,我也可以爲每個測試階段指定一個描述,因此gradle tasks描述了每個測試的角色。

這可能嗎?如果是這樣,怎麼樣?

我嘗試這樣做:

sourceSets { 
    unit { 
     java.srcDir file('src/test/groovy/local') 
     resources.srcDir file('src/local/resources') 
    } 
} 
dependencies {...} 
task unitTest(type: Test){ 
    testClassesDir = sourceSets.local.output.classesDir 
    classpath = sourceSets.local.runtimeClasspath 
} 

...從withIntegrationTests複製所提供的樣品中,但是當我運行gradle unitTest,沒有測試運行。

回答

5

你只需要添加三個Test任務(testUnittestLocaltestRemote),並相應配置。 (除了引入testUnit,您還可以重新使用Java插件附帶的test任務。)如果源位於不同的源文件夾中,添加其他源集合也是有意義的。有關詳細信息,請查看完整Gradle分配中的samples/java/withIntegrationTests

+0

我試圖複製這個例子無濟於事。我用我試過的更新了我的問題。 –

+0

請始終聲明Gradle版本。如果沒有運行測試,通常意味着Gradle找不到任何測試類。你能否檢查build/classes/unit是否確實包含JUnit測試的類文件? –