Android 单元测试支持在 android 库模块中不起作用
Android unit test support does not work in android library modules
我正在使用新的单元测试支持 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
在我的 android 图书馆项目中,我也未能获得测试 运行。我所做的是创建一个使用库的测试应用程序,并在调用库方法的应用程序中编写测试。
这可能不是理想的解决方案,但却是我们实现它的方式。
看这里https://github.com/nenick/AndroidStudioAndRobolectric
在那里您可以 运行 对库和风格进行单元测试。不,您不需要按照 Gaurav Vashisth
所述使用 Robolectric。如果你愿意,你可以。
看起来编译单元测试的任务不依赖于编译库代码的任务。
以下为我修复了它:
afterEvaluate {
tasks['assembleDebugUnitTest'].dependsOn(tasks['assembleDebug'])
}
我运行 测试使用
./gradlew testDebug
如果您不想修改您的 build.gradle
,在命令行上手动指定 assembleDebug
任务也可以解决问题:
./gradlew assembleDebug testDebug
我正在使用新的单元测试支持 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
在我的 android 图书馆项目中,我也未能获得测试 运行。我所做的是创建一个使用库的测试应用程序,并在调用库方法的应用程序中编写测试。
这可能不是理想的解决方案,但却是我们实现它的方式。
看这里https://github.com/nenick/AndroidStudioAndRobolectric
在那里您可以 运行 对库和风格进行单元测试。不,您不需要按照 Gaurav Vashisth
所述使用 Robolectric。如果你愿意,你可以。
看起来编译单元测试的任务不依赖于编译库代码的任务。 以下为我修复了它:
afterEvaluate {
tasks['assembleDebugUnitTest'].dependsOn(tasks['assembleDebug'])
}
我运行 测试使用
./gradlew testDebug
如果您不想修改您的 build.gradle
,在命令行上手动指定 assembleDebug
任务也可以解决问题:
./gradlew assembleDebug testDebug