Kir*_*ill 8 android unit-testing gradle android-library android-gradle-plugin
我有一个android库gradle项目.我需要将一些文件复制到资源文件夹以进行robolectric单元测试.
要做到这一点,我已经定义了一个复制任务:
task copyDebugAssets(type: Copy) {
from "${projectDir}/somewhere"
into "${buildDir}/intermediates/bundles/debug/assets"
}
Run Code Online (Sandbox Code Playgroud)
但我不能将此任务添加为processDebugResources任务的依赖项:
processDebugResources.dependsOn copyDebugAssets
Run Code Online (Sandbox Code Playgroud)
因为这个错误:
无法为com.android.build.gradle.LibraryExtension类型的对象获取未知属性'processDebugResources'.
现在我必须在单元测试之前手动执行此任务:
./gradlew clean copyDebugAssets test
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
Android 插件动态添加几个任务。您的.dependsOn行不起作用,因为当时 gradle 正在尝试处理该行,processDebugResources任务尚可用。您应该告诉 gradle 在上游任务可用时立即添加依赖项:
tasks.whenTaskAdded { task ->
if (task.name == 'processDebugResources') {
task.dependsOn copyDebugAssets
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
635 次 |
| 最近记录: |