При составлении теста многоплатформенного пользовательского интерфейса в Android открывается действие разрешений и зависAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 При составлении теста многоплатформенного пользовательского интерфейса в Android открывается действие разрешений и завис

Сообщение Anonymous »

У меня есть библиотека, использующая KMP + CMP. Я хочу покрыть часть пользовательского интерфейса тестами. для этого я изменил build.gradle следующим образом

Код: Выделить всё

plugins {
alias(libs.plugins.com.android.library)
alias(libs.plugins.org.jetbrains.multiplatform)
alias(libs.plugins.org.jetbrains.cocoapods)
alias(libs.plugins.org.jetbrains.serialization)
alias(libs.plugins.org.jetbrains.compose)
alias(libs.plugins.org.jetbrains.compose.compiler)
alias(libs.plugins.io.realm.kotlin)
alias(libs.plugins.maven.publish)
}

kotlin {
androidTarget {
publishLibraryVariants("release", "debug")
@OptIn(ExperimentalKotlinGradlePluginApi::class)
instrumentedTestVariant {
sourceSetTree = KotlinSourceSetTree.test
}
}
iosX64()
iosArm64()
iosSimulatorArm64()
applyDefaultHierarchyTemplate()

jvmToolchain(17)

sourceSets {
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.material3)
implementation(compose.materialIconsExtended)
implementation(libs.realm)
implementation(libs.decomposeCompose)
implementation(libs.decompose)
implementation(libs.datetime)
implementation(libs.ktor.client.core)
implementation(libs.uuid)
}
androidMain.dependencies {
implementation(libs.activity.compose)
}
commonTest.dependencies {
implementation(kotlin("test"))
@OptIn(ExperimentalComposeLibrary::class)
implementation(compose.uiTest)
}
androidInstrumentedTest.dependencies {
implementation(project.dependencies.platform(libs.compose.bom))
implementation(libs.ui.test.junit4.android)
}
}
}

android {
publishing {
singleVariant("release") {
withSourcesJar()
withJavadocJar()
}
}
namespace = "com.idfinance.logkmpanion"
compileSdk = 34
defaultConfig {
minSdk = 21
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
dependencies {
debugImplementation(libs.ui.test.manifest)
}
}
И создал тесты в папке Module/commonTest

Код: Выделить всё

@OptIn(ExperimentalTestApi::class)
class RootViewTest {

@Test
fun rootViewPresents() = runComposeUiTest {
setContent {
RootView(
ServiceLocator.getRootComponent(
context = DefaultComponentContext(LifecycleRegistry()),
onClose = {}
)
)
}

onNodeWithTag(RootViewTestTags.ROOT_VIEW).isDisplayed()
}

@Test
fun tabsSwitched() = runComposeUiTest {
setContent {
RootView(
ServiceLocator.getRootComponent(
context = DefaultComponentContext(LifecycleRegistry()),
onClose = {}
)
)
}

onNodeWithText("Network logs").performClick()
onNodeWithTag(NetworkLogsTestTags.ROOT_VIEW).assertExists()
onNodeWithTag(AllLogsTestTags.ROOT_VIEW).assertDoesNotExist()

onNodeWithText("All logs").performClick()
onNodeWithTag(AllLogsTestTags.ROOT_VIEW).assertExists()
onNodeWithTag(NetworkLogsTestTags.ROOT_VIEW).assertDoesNotExist()
}
}
Но когда я запускаю тесты ./gradlew :moduleName:connectedAndroidTest, они зависают, и в эмуляторе открывается следующее действие
< img alt="введите описание изображения здесь" src="https://i.sstatic.net/rU7csuHk.png" />
версия compose-bom, которую я использую:

Код: Выделить всё

compose-bom = "2024.11.00"
Можете ли вы помочь мне запустить инструментальные тесты в Android? Заранее спасибо за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... y-and-stic
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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