Чтобы сохранить ресурсы и время выполнения, я пытаюсь перенести свои тесты на композицию в модуль 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
«Не удалось создать тестовый класс бегуна androidx.test.internal.runner.junit4.androidjunit4classrunner» при запуске Com ⇐ Android
Форум для тех, кто программирует под Android
1741617167
Anonymous
Чтобы сохранить ресурсы и время выполнения, я пытаюсь перенести свои тесты на композицию в модуль Unittest , чтобы они могли работать без инструментов на jvm.
Однако я запускаю свои наборы тестов, я получаю следующую ошибку:
Failed to instantiate test runner class androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
< /code>
Я провел некоторые исследования, и я должен делать все правильно, поэтому я запутался, почему это не работает. Я даже попробовал предложение здесь, но это тоже не исправило. Ниже приведен мой код.
[b] myScreentest [/b]
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 {
// ...
}
}
}
[b]build.gradle.kts[/b]
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)
}
[b] libs.versions.toml[/b]
[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]
// ...
Подробнее здесь: [url]https://stackoverflow.com/questions/79498311/failed-to-instantiate-test-runner-class-androidx-test-internal-runner-junit4-an[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия