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