2012-01-25 41 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测试的类文件? –