自定义 gradle 任务在“connectedAndroidTest”失败后未执行

问题描述 投票:0回答:1

我有一个带有仪器测试的android项目。 我正在尝试在

connectedAndroidTest
之后立即运行自定义 gradle 任务。

我希望此自定义任务无论运行状态如何

connectedAndroidTest
都运行,即无论失败还是通过。 此自定义 gradle 任务尝试在仪器测试运行后从设备中提取测试工件。

这是我在应用程序的 build.gradle 中的任务依赖项配置的样子:

tasks.register("pullData", Exec) {
    // code to pull data
}

gradle.projectEvaluated {
    connectedAndroidTest.finalizedBy pullData
}

当 connecteAndroidTest 通过时,将从设备下载文件,但当失败时,gradle 任务会失败,并且 最终任务“pullData”不会执行

我的问题是:无论测试结果如何,如何在

connectedAndroidTest
之后运行任务?为什么当我的测试失败时 FinalizedBy 不起作用?

非常感谢对此的任何帮助。谢谢你:)

android gradle android-instrumentation
1个回答
0
投票

默认情况下,当任何单个测试失败时,测试任务都会导致构建失败,因此任何后续任务都不会运行。您需要关闭此功能才能获得您想要的行为。

您可以针对您的特定测试任务执行以下操作:

tasks.named("connectedAndroidTest") {
    ignoreFailures = true
}

这样做的缺点是,当您的测试失败时,构建不会失败,这可能不是您更普遍想要的。解决这个问题将涉及进一步的构建重新设计,包括不尊重问题中在每次测试运行后运行

pullData
的请求;由于这些原因,对可能方法的讨论可能超出了这个问题的范围。

© www.soinside.com 2019 - 2024. All rights reserved.