«Не удалось создать тестовый класс бегуна androidx.test.internal.runner.junit4.androidjunit4classrunner» при запуске ComAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 «Не удалось создать тестовый класс бегуна androidx.test.internal.runner.junit4.androidjunit4classrunner» при запуске Com

Сообщение Anonymous »

Чтобы сохранить ресурсы и время выполнения, я пытаюсь перенести свои тесты на композицию в модуль Unittest , чтобы они могли работать без инструментов на jvm.
Однако я запускаю свои наборы тестов, я получаю следующую ошибку:
Failed to instantiate test runner class androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
< /code>
Я провел некоторые исследования, и я должен делать все правильно, поэтому я запутался, почему это не работает. Я даже попробовал предложение здесь, но это тоже не исправило. Ниже приведен мой код.
myScreentest
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
class MyScreenTest {

// ...

@get:Rule
val composeTestRule = createComposeRule()

@Test
fun testSomething() {
composeTestRule.run {
// ...
}
}
}

build.gradle.kts
android {
// ...

defaultConfig {
// ...
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildFeatures {
compose = true
}

composeOptions {
kotlinCompilerExtensionVersion = "1.5.3"
}

testOptions {
unitTests {
isIncludeAndroidResources = true
}
}
}

dependencies {
// ...
testImplementation(libs.androidx.junit)
testImplementation(libs.compose.ui.test.junit4)
testImplementation(libs.mockk)
testImplementation(libs.junit)
testImplementation(libs.androidx.runner)
debugImplementation(libs.androidx.ui.test.manifest)
}

libs.versions.toml
[versions]
agp = "8.6.1"
kotlin = "1.9.10"
coreKtx = "1.15.0"
junit = "4.13.2"
junitVersion = "1.2.1"
espressoCore = "3.6.1"
appcompat = "1.7.0"
material = "1.12.0"
constraintlayout = "2.2.1"
navigationFragmentKtx = "2.8.8"
navigationUiKtx = "2.8.8"

retrofit = "2.9.0"
activityCompose = "1.10.1"
composeBom = "2025.02.00"
composeNavigation = "2.8.8"
kotlinxSerilization = "1.6.3"
mockk = "1.13.8"
kotlinxCoroutinesTest = "1.7.3"
jetbrainsKotlinJvm = "1.9.10"
composeTest = "1.7.8"
runner = "1.6.2"

[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigationFragmentKtx" }
androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigationUiKtx" }

retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "composeNavigation"}
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerilization"}
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesTest" }
compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "composeTest" }
androidx-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "composeTest" }
androidx-runner = { module = "androidx.test:runner", version.ref = "runner" }

[plugins]
// ...


Подробнее здесь: https://stackoverflow.com/questions/794 ... -junit4-an
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»