尝试在设备上调试androidTests时出现以下错误。出现的唯一错误是以下内容,该测试将永远挂起,直到我停止它为止。如果我运行测试,测试就可以完成,问题是当我尝试进行调试时。我已经尝试过:
- 禁用即时运行
- 通过kill-server和start-server命令重新启动adb。
- 重新启动android studio。
- 使缓存无效并重新启动。
- 不同的手机
- 不同的计算机
这是我在logcat中看到的错误:
W/ting.ventasplu: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
A/ting.ventasplu:nstrumentation.cc:267] Check failed: m == frame.method_ (m=0xb0a66f30,frame.method_=0x6fac48ac) Expected void java.lang.Object.wait(long,int),Found void java.lang.Object.wait(long,int)
这是InstrumentedTestCode:
@RunWith(AndroidJUnit4::class)
class Loginactivity2InstrumentedTest {
lateinit var scenario: activityScenario<Loginactivity>
val viewModel: LoginViewModel = mockk(relaxed = true)
val app: KoinTestVentasPlusApplication = ApplicationProvider.getapplicationContext()
@After
fun cleanup() {
scenario.close()
}
@Test
@SmallTest
fun test() {
app.loadmodules(listOf(module { single (override = true) {viewModel} })) {
scenario = launchactivity()
}
}
}
我正在使用自定义测试运行程序:
class KoinTestRunner: AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader?,classname: String?,context: Context?): Application {
return super.newApplication(
cl,KoinTestVentasPlusApplication::class.java.name,context
)
}
}
这是自定义应用程序代码:
class KoinTestVentasPlusApplication: Application() {
override fun onCreate() {
super.onCreate()
startKoin {
androidLogger()
androidContext(this@KoinTestVentasPlusApplication)
modules(emptyList())
}
}
internal fun loadmodules(modules: List<Module>,block: () -> Unit) {
loadKoinmodules(modules)
block()
unloadKoinmodules(modules)
}
}
这是上述库的gradle文件中的依赖项:
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1'
androidTestImplementation 'androidx.test:core-ktx:1.2.0'
androidTestImplementation ("org.koin:koin-test:$project.koin"){ exclude group: 'org.mockito' }
androidTestImplementation "io.mockk:mockk-android:1.9.2"