Gradle别名到属性名称

时间:2017-03-03 11:35:59

标签: android gradle android-gradle gradle-task

如何创建"别名"对于gradle属性名称?

例如,Android Instrumentation Runner提供了仅执行某些测试类/方法的功能:

./gradlew connectedAndroidTest \
   -Pandroid.testInstrumentationRunnerArguments.class=com.example.TestSuiteName

如何缩短此参数名称?

我尝试过创建这样的自定义任务:

task executeTest {
    setProperty('android.testInstrumentationRunnerArguments.class', 'com.example.TestSuiteName')
    dependsOn 'connectedAndroidTest'
}

但它会因groovy.lang.MissingPropertyException而爆炸。

使用doLast {}闭包也是如此。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为您在Project对象上设置了一个属性,与拥有project.setProperty('key', 'val')相同,但您想将该属性添加到System.properties

这样的事情应该可以检查是否先执行任务,然后设置系统属性。

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask("connectedAndroidTest") {
        System.setProperty('android.testInstrumentationRunnerArguments.class', 'com.example.TestSuiteName')
    }
}