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

时间:2015-02-28 13:56:45

标签: android android-studio gradle jvm android-testing

我们正在尝试将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 

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

1 个答案:

答案 0 :(得分:5)

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

./gradlew clean assembleDebug assembleRelease test

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