0

如何为 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 {}闭包也是如此。

有什么建议么?

4

1 回答 1

0

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

像这样的东西应该可以检查是否要先执行任务然后设置系统属性。

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask("connectedAndroidTest") {
        System.setProperty('android.testInstrumentationRunnerArguments.class', 'com.example.TestSuiteName')
    }
}
于 2017-03-03T14:27:37.847 回答