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

标签 android unit-testing junit android-gradle-plugin

我正在使用新的单元测试支持在 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 单元测试支持在 android 库模块中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29163541/

相关文章:

java - 平稳地从 A 移动到 B

java - 当编辑文本的输入类型设置为数字时,android 软键盘不可见

c++ - 如何检测程序是否在 valgrind 中运行?

java - 基于枚举测试条件

java - 如何对没有参数的 void 方法进行单元测试

android - 如何使用 Room Persistence Library 从本地数据库更新文档?

android - RecyclerView 未预览

angular - 对话框测试 - 当我模拟 this.store$.pipe( select(...) ...).subscribe(..) 时,Jasmine 返回 this.store$.pipe 不是函数

python - 单元测试 cherrypy 网络应用程序

java - 为什么 getClass().getResource() 在 Powermock 单元测试中的第二个 @Test 时返回 null