仪器测试apk在添加房间测试后没有测试或跑步者

时间:2017-11-17 16:24:45

标签: android android-testing android-room

我关注了Florina Muntenescu的article about room migration tests,在我的gradle文件中添加了房间测试后,我在运行UI测试时遇到了这个错误:

java.lang.ClassNotFoundException: Didn't find class 
"br.com.jonathanzanella.TestRunner" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", 
zip file "/data/app/br.com.jonathanzanella.myexpenses.debug.test-1/base.apk", 
zip file "/data/app/br.com.jonathanzanella.myexpenses.debug-1/base.apk"],
nativeLibraryDirectories=[/data/app/br.com.jonathanzanella.myexpenses.debug.test-1/lib/x86, /data/app/br.com.jonathanzanella.myexpenses.debug-1/lib/x86, /vendor/lib, /system/lib]]

我正在使用架构组件中的room和lifecycle observable:

implementation "android.arch.lifecycle:extensions:$roomVersion"
implementation "android.arch.persistence.room:runtime:$roomVersion"
implementation "android.arch.persistence.room:rxjava2:$roomVersion"
androidTestImplementation "android.arch.persistence.room:testing:$roomVersion"
kapt "android.arch.persistence.room:compiler:$roomVersion"

roomVersion是1.0.0

我有一个自定义测试运行器:

testInstrumentationRunner 'br.com.jonathanzanella.TestRunner'

TestRunner类在androidTest文件夹中定义。

在Facebook截图测试中查看this issue让我觉得问题是房间测试还定义了一个customRunner,我需要覆盖它,如问题解决方案中所示,但代码

project.app.customTestRunner = true

不为我编译

1 个答案:

答案 0 :(得分:0)

在堆栈溢出处挖掘我发现这个question让我认为错误可能是其他的。

由于房间有一个我需要添加到kapt的编译器,我试图在androidTest中添加它作为kapt的依赖很好,它解决了问题。

解决问题的代码是:

kaptAndroidTest "android.arch.persistence.room:compiler:$roomVersion"