【发布时间】:2020-03-09 16:20:22
【问题描述】:
我使用以下情况遇到了问题:
为了连续运行不同的原生测试插件,我动态地创建了一些任务来为每个插件适当地准备环境,然后为每个托管依赖项的测试插件创建一个plugin_task。
要在设备上开始测试,plugin_task 是finalizedBy connectedAndroidTest。
例如调用gradle plugin_name_1 工作正常,它准备环境并开始测试。
tasks.register("allTests"){}
name_list.each { test_name ->
def prepare_dir = tasks.register("${test_name}_Prepare_Dir") {...}
def copy_files = tasks.register("${test_name}_Copy_Files") {...}
def plugin_task = tasks.register(test_name){
dependsOn prepare_dir
dependsOn copy_files
finalizedBy connectedAndroidTest
}
allTests.configure {
dependsOn pluginTask
}
}
现在问题出现了,当我尝试运行 allTests 任务时:
gradle 然后正确地操作每个插件的所有动态创建的任务“prepare_dir”、“copy_files”,所有这些都被执行。
但是 connectedAndroidTest 只会在 allTests 的最后执行,所以只运行一次。但我需要在每个 plugin_task 的每一端都执行此任务。
gradle 的行为是正确的,因为它看到所有 plugin_tasks 都应由 connectedAndroidTest 完成,因此将其放在图表的末尾。
有没有可能让 gradle 多次执行这个任务? 很高兴得到帮助。
将 connectedAndroidTest 任务包装成动态创建的任务并让 plugin_tasks 依赖于它们,这无济于事。参数“rerun-tasks”也没有效果。
【问题讨论】:
标签: gradle android-ndk gradle-task