问题描述
(Android)Gradle任务const data = [
{ 0: { country: null } },{ 1: { name: null } },{ 2: { address: null } },];
const result = data.every((item) =>
(Object.values(item).every((subItem) =>
(Object.values(subItem).every(nodeItem => nodeItem == null)))
)
);
console.log(result);
运行指定模块的所有检测测试,并且可以通过向其传递属性来限制其运行的测试:
connectedAndroidTest
我想写几个不同的任务,./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.app.package.test.TestSuite
和reliabilityTest
,将sanityTest
参数传递给android.testInstrumentationRunnerArguments.class
,所以可以写:
connectedAndroidTest
然后将运行一部分测试。
这是我现在要做的任务:
./gradlew app:sanityTest
如果我以以下方式运行测试,则仅运行TestSuite中的测试:
task sanityTest() {
group 'verification'
description 'Runs sanity instrumentation tests.'
doFirst {
println "doFirst"
project.ext."android.testInstrumentationRunnerArguments.class" = "com.app.package.test.TestSuite"
}
finalizedBy 'connectedAndroidTest'
}
但是,如果我以此方式运行,则所有测试都将运行:
./gradlew app:sanityTest -Pandroid.testInstrumentationRunnerArguments.class=com.app.package.test.TestSuite
./gradlew app:sanityTest
参数似乎是在设置项目属性,并且可以看到,在使用-P传递该属性时,与在任务的-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<property
有什么区别?
FWIW,我尝试跟踪project.ext.<property>
的工作方式,并给出了一个很好的答案here,而我最接近来源的是here。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)