我关注了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
不为我编译
答案 0 :(得分:0)
在堆栈溢出处挖掘我发现这个question让我认为错误可能是其他的。
由于房间有一个我需要添加到kapt的编译器,我试图在androidTest中添加它作为kapt的依赖很好,它解决了问题。
解决问题的代码是:
kaptAndroidTest "android.arch.persistence.room:compiler:$roomVersion"