我使用以下情况遇到了问题:
为了连续运行不同的本机测试插件,我动态地创建了一些任务来为每个插件适当地准备环境,然后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”也没有效果。