我正在使用新的单元测试支持http://tools.android.com/tech-docs/unit-testing-support在android项目上编写junit测试。
单元测试在' com.android.application'上运行。模块完美,但他们总是失败的com.android.library'模块。这在http://tools.android.com/tech-docs/unit-testing-support中没有记录。所以我想知道我是否是罪魁祸首。
当我在库模块上编写这些测试时,测试无法在模块上找到类并且总是会出现以下错误:
package does not exist
error: cannot find symbol
Android单元测试支持目前正处于实验阶段,但有解决方案吗?
更新
我已将此问题添加到Android问题跟踪器https://code.google.com/p/android/issues/detail?id=161038
答案 0 :(得分:7)
看起来编译单元测试的任务不依赖于编译库代码的任务。 以下为我解决了这个问题:
afterEvaluate {
tasks['assembleDebugUnitTest'].dependsOn(tasks['assembleDebug'])
}
我使用
运行测试./gradlew testDebug
如果您不想修改build.gradle
,请在命令行上手动指定assembleDebug
任务也应该这样做:
./gradlew assembleDebug testDebug
答案 1 :(得分:2)
在我的android库项目中,我也无法运行测试。我所做的是创建一个测试应用程序,该应用程序使用该库并在调用库方法的应用程序中编写测试。
这可能不是理想的解决方案,但这是我们开展工作的方式。
答案 2 :(得分:1)
请查看https://github.com/nenick/AndroidStudioAndRobolectric
在那里你可以对库和口味进行单元测试。并且你不需要像Gaurav Vashisth
那样使用Robolectric。如果你愿意,你可以。