Android单元测试支持在Android库模块中不起作用



我正在使用新的单元测试支持在android项目上编写junit测试http://tools.android.com/tech-docs/unit-testing-support.

虽然单元测试在"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

编译单元测试的任务似乎不依赖于编译库代码的任务。以下为我修复了它:

afterEvaluate {
    tasks['assembleDebugUnitTest'].dependsOn(tasks['assembleDebug'])
}

我使用运行测试

./gradlew testDebug

如果你不想修改build.gradle,在命令行上手动指定assembleDebug任务也可以:

./gradlew assembleDebug testDebug

在我的android库项目中,我也未能运行测试。我所做的是创建一个使用库的测试应用程序,并在应用程序中编写调用库方法的测试。

这可能不是理想的解决方案,但这是我们实现这一目标的方式。

看看这里https://github.com/nenick/AndroidStudioAndRobolectric

在那里,您可以对库和风格运行单元测试。不,你不需要像Gaurav Vashisth所说的那样使用Robolectric。如果你愿意,你可以。

以下是库模块中JUnit测试的一个示例

最新更新