【问题标题】:Task with name 'testDebug' not found in project ':module'在项目“:模块”中找不到名称为“testDebug”的任务
【发布时间】:2015-11-03 10:41:04
【问题描述】:

截至com.android.tools.build:gradle:1.3.0,您可以遇到Task with name 'testDebug' not found in project ':module'.

在构建环境的早期阶段,无法使用 Robolectric 和 Java 正确测试库模块,因此创建了此解决方法:

afterEvaluate { project ->
    android.libraryVariants.each { variant ->
        println variant.name
        println tasks
        tasks.getByName("test${variant.name.capitalize()}") {
            dependsOn "assemble${variant.name.capitalize()}"
        }
    }
}

在 1.3.0 版本中,这已被破坏。

【问题讨论】:

    标签: android junit gradle robolectric


    【解决方案1】:

    他们已将名称从testDebug 更改为testDebugUnitTest,因此需要将上面的代码更改为:

    afterEvaluate { project ->
        android.libraryVariants.each { variant ->
            println variant.name
            println tasks
            tasks.getByName("test${variant.name.capitalize()}UnitTest") {
                dependsOn "assemble${variant.name.capitalize()}"
            }
        }
    }
    

    【讨论】:

    • 这就是 1.3.0 中的所有变化吗? libraryVariants 在我的项目中现在是空的......它计算变体的方式有什么变化吗?
    • 你说的项目,应用了哪个插件com.android.applicationcom.android.library
    • 它是com.android.library。事实证明,libraryVariants 被填充在 afterEvaluate 块中(以前也是如此)。我定义的一些设置取决于我在 afterEvaluate 中生成的任务。
    • 是的,好吧,可能是他们在那里也改变了一些东西,但对我来说libraryVariants 永远不会是空的。
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2019-07-03
    • 2018-11-07
    • 1970-01-01
    • 2022-07-04
    • 2018-04-19
    相关资源
    最近更新 更多