Android:跳过依赖项项目的 Gradle "testClasses"任务

标签 android android-studio gradle junit

我关注了this guide在 Android Studio v1.4 中为我的主要 Android 模块(我们称之为“module-a”)创建一个 JUnit 测试文件。

我的“module-a”依赖于作为 .aar 文件提供的外部库,我必须为此创建一个专用模块。

此依赖导致错误:

当右键单击测试 Java 文件并点击 "Run MyTestName"时,它会失败并出现此错误

Error:Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Task 'testClasses' not found in project ':module-b'.

去掉对module-b的依赖就解决了问题。

module-a build.gradle 的摘录:

compile project(':module-b')

module-b build.gradle:

configurations.create("default")
artifacts.add("default", file('library-b.aar'))

我应该如何配置 Gradle,使其不会尝试在 "module-b"上运行 testClasses 任务? (这应该可以解决我的问题)

最佳答案

我没有找到跳过 module-b 的 testClasses 任务的方法:似乎从 Android Studio 开始的操作(如运行 JUnit 测试)运行无法修改的 Gradle 命令。就我而言:

Information:Gradle: Executing tasks:
[:module-a:prepareFree_flavorDebugUnitTestDependencies,
 :module-a:generateFree_flavorDebugSources,
 :module-a:mockableAndroidJar,
 :module-a:assembleFree_flavorDebug,
 :module-a:assembleFree_flavorDebugUnitTest,
 :module-b:testClasses]

不过,我找到了解决问题的方法:

将以下代码添加到module-b build.gradle:

task testClasses {
    doLast {
        println 'This is a dummy testClasses task'
    }
}

关于Android:跳过依赖项项目的 Gradle "testClasses"任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33132996/

相关文章:

java - 找不到 com.example.roomwordssample.WordRoomDatabase 的实现。 WordRoomDatabase_Impl 不存在

java - Gradle - 只有在测试通过时才创建 jar

javascript - Ionic/Cordova - 获取要在 <img src =""> 上使用的图像路径

android - 为什么最新的 android Nougat 中的应用程序快捷方式最多为 4?

android - 安装在 system/priv-app 中的应用程序在没有重启的情况下无法启动(root)

java - 当项目列在 strings.xml 中而不是 Android Studio 中的静态项目时,如何删除在按钮上单击 Spinner 中选择的项目?

android - Android 中的 RenderScript 更加模糊

android - 我无法删除 android :roundIcon ="@mipmap/ic_launcher_round" from AndroidManifest. xml

methods - 测试配置中的Gradle调用方法

java - 如何将本地.jar文件依赖添加到build.gradle文件?