Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数传递给Android';是否从另一个任务连接了AndroidTest Gradle任务?_Android_Gradle_Android Gradle Plugin_Build.gradle - Fatal编程技术网

如何将参数传递给Android';是否从另一个任务连接了AndroidTest Gradle任务?

如何将参数传递给Android';是否从另一个任务连接了AndroidTest Gradle任务?,android,gradle,android-gradle-plugin,build.gradle,Android,Gradle,Android Gradle Plugin,Build.gradle,(Android)Gradle任务connectedAndroidTest运行指定模块的所有检测测试,可以通过执行以下操作向其传递属性以限制其运行的测试: ./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.app.package.test.TestSuite 我想编写两个不同的任务,reliabilityTest和sanityTest,它们将android.test

(Android)Gradle任务
connectedAndroidTest
运行指定模块的所有检测测试,可以通过执行以下操作向其传递属性以限制其运行的测试:

./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.app.package.test.TestSuite
我想编写两个不同的任务,
reliabilityTest
sanityTest
,它们将
android.testinstrumentationrunnearguments.class
参数传递到
connectedAndroidTest
,因此可以编写:

./gradlew app:sanityTest
将运行一部分测试

这就是我现在的任务:

task sanityTest() {
  group 'verification'
  description 'Runs sanity instrumentation tests.'
  doFirst {
    println "doFirst"
    project.ext."android.testInstrumentationRunnerArguments.class" = "com.app.package.test.TestSuite"
  }
  finalizedBy 'connectedAndroidTest'
}
如果以以下方式运行测试,则仅运行TestSuite中的测试:

./gradlew app:sanityTest -Pandroid.testInstrumentationRunnerArguments.class=com.app.package.test.TestSuite
但是,如果以这种方式运行,则所有测试都将运行:

./gradlew app:sanityTest
-p
参数似乎设置了一个项目属性,我可以看到,当我用-p传递它时,设置的属性与我在任务的
doFirst
块中设置它时设置的属性相同:

gradle.taskGraph.beforeTask { Task task ->
  println "Executing task: " + task
  if (task.name == "connectedDebugAndroidTest") {
    println "beforeTask"
    println "android.testInstrumentationRunnerArguments.class - " + project.properties.get("android.testInstrumentationRunnerArguments.class")
  }
}
如何将参数传递给
connectedAndroidTest
任务

-p和
project.ext.
之间有什么区别

FWIW,我试着追踪
connectedAndroidTest
是如何工作的,有一个很好的答案,我最接近的来源是。

project.ext。优先级高于命令行中的-P,因此如果您有两个属性,但具有不同的值,则gradle将采用ext{}block中指定的一个属性