Android 单元测试不适用于 Android 库项目

标签 android android-studio gradle jvm android-testing

我们正在尝试介绍 new Android Unit Testing Support到我们的项目。

对于library项目,gradlew运行时找不到src/main/java类。

从 Android Studio 运行测试按预期工作。 在应用程序项目中使用 gradle 运行测试按预期工作。 在库项目中使用 gradle 运行测试失败。

我在 github 上创建了一个示例项目,在一个小项目中重现了这个问题。

使用 gradle 插件定义 apply plugin: 'com.android.application' 它工作正常,使用插件定义 apply plugin: 'com.android.library' 错误发生。

错误是:

home/user/path/AndroidJvmJunitTestSpike/common/src/test/java/squins/com/common/SomeClassTest.java:11: error: cannot find symbol
    assertEquals(2, new SomeClass().sum(1, 1));
                        ^                    
  symbol:   class SomeClass                      
  location: class SomeClassTest                  
  /home/user/path/AndroidJvmJunitTestSpike/common/src/test/java/squins/com/common/SomeClassTest.java:16: error: cannot find symbol
    new SomeClass().referenceDrawableFromR();
        ^                                    
  symbol:   class SomeClass                      
  location: class SomeClassTest                  
  2 errors                                         
  :common:compileDebugUnitTestJava FAILED 

这应该有效吗?我错过了什么吗?

最佳答案

我找到了一个解决方法:手动触发编译。成功的 Gradle 命令:

./gradlew clean assembleDebug assembleRelease 测试

仍在寻找更好的解决方案。

关于Android 单元测试不适用于 Android 库项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28782518/

相关文章:

android - 在代码中保存 Firebase 引用的最佳方式

android - 如何选中android中表格布局中的所有复选框

java - 两个线程可以同时使用同一个套接字吗?这可能会出现问题吗?

java - 使用 android studio 的 JSON

java - 如何在android中实现java中的Kotlin类?

android - 将 Pushe unity 插件添加到我的 Android 应用程序时出错

Android Studio XML 无法识别 objectAnimator

intellij-idea - Intellij+Springboot+Thymeleaf+gradle - 自动重载html资源

android - 无法解决:com.android.support:appcompat-v7:29.+ [duplicate]

maven - 解决hipchat gradle依赖