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

Android Unit Testing not working for Android library project

我们正在尝试将 new Android Unit Testing Support 引入我们的项目。

对于库项目,当 运行 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 test

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