Я получаю эту ошибку при запуске модульного теста на составном объекте:
No interface method complete()Z in class Lkotlinx/coroutines/CompletableJob; or its super classes (declaration of 'kotlinx.coroutines.CompletableJob' appears in /data/app/~~fIPCXqaEQds-4dojIoIsag==4dojIoIsag==/com.fluffypants.rockhard==/base.apk!classes2.dex
Он помещает это в следующую строку в IdlingResourceRegistry.jvm.kt:
private var pollJob: Job = Job().also { it.complete() }
Это восходящий код, который я запускаю, и который в конечном итоге приводит к ошибке. Он прерывается при createComposeRule():
@RunWith(AndroidJUnit4:class
class MyInstrumentedTest{
@get:Rule
val composeTestRule = createComposeRule()
@OptIn(ExperimentalCoroutinesApi::class)
@Test
fun myTest() = runTest {
//errors no matter what I put in here
}
}
У меня есть эти тестовые библиотеки, настроенные в моем build.gradle.
testImplementation "junit:junit:4.13.2"
androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.1"
androidTestImplementation "androidx.compose.ui:ui-test-junit4-android:1.6.3"
debugImplementation "androidx.compose.ui:ui-test-manifest:1.6.3"
Я использую самые последние версии всех тестовых библиотек. Что я делаю не так?
Я закомментировал весь тест, кроме указанной мной строки, и все равно получаю сообщение об ошибке: val composeTestRule = createComposeRule(). Остальное я обновлю в ближайшее время.
не могу повторить проблему
Причиной проблемы было то, что в моей конфигурации варианта buildType для параметра «minifyEnabled» было установлено значение «true».
Например, мой buildType был настроен следующим образом:
android{
buildTypes{
myBuildTypeName{
shrinkResources false
debuggable true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.lle
}
}
}
Простое изменение значения «minifyEnabled» на «false» решило проблему для меня.
поделитесь, пожалуйста, своим тестом, иначе будет сложно помочь