Closed gastsail closed 8 months ago
I'm trying to do ui tests on android(local) , from iOS, the test works as expected
Versions
To Reproduce Run the test either with the command ./gradlew :composeApp:connectedAndroidTest or with green play button android(local)
./gradlew :composeApp:connectedAndroidTest
Expected behavior Test runs as iOS
Screenshots Test running correctly on iOS
Test fails on Android
Additional context I'm following this documentation https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-test.html#how-compose-multiplatform-testing-is-different-from-jetpack-compose
Gradle file
import org.jetbrains.compose.ExperimentalComposeLibrary import org.jetbrains.compose.desktop.application.dsl.TargetFormat import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidApplication) alias(libs.plugins.jetbrainsCompose) id("app.cash.sqldelight") version "2.0.1" kotlin("plugin.serialization") version "1.9.22" } sqldelight { databases { create("AppDatabase") { packageName.set("com.expenseApp.db") } } } kotlin { androidTarget { compilations.all { kotlinOptions { jvmTarget = "17" } } @OptIn(ExperimentalKotlinGradlePluginApi::class) instrumentedTestVariant { sourceSetTree.set(KotlinSourceSetTree.test) dependencies { implementation("androidx.compose.ui:ui-test-junit4-android:1.5.4") debugImplementation("androidx.compose.ui:ui-test-manifest:1.5.4") } } } listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "ComposeApp" isStatic = true } } sourceSets { androidMain.dependencies { implementation(libs.compose.ui.tooling.preview) implementation(libs.androidx.activity.compose) implementation ("com.google.accompanist:accompanist-systemuicontroller:0.31.3-beta") //Koin implementation(project.dependencies.platform("io.insert-koin:koin-bom:3.5.1")) implementation("io.insert-koin:koin-core") implementation("io.insert-koin:koin-android") //SQLDelight implementation("app.cash.sqldelight:android-driver:2.0.1") //Ktor implementation(libs.ktor.client.okhttp) implementation(libs.kotlinx.coroutines.android) } commonMain.dependencies { implementation(compose.runtime) api(compose.foundation) api(compose.animation) implementation(compose.material) api(compose.materialIconsExtended) implementation(compose.ui) @OptIn(ExperimentalComposeLibrary::class) implementation(compose.components.resources) //Navigation PreCompose api("moe.tlaster:precompose:1.5.10") //Viewmodel api("moe.tlaster:precompose-viewmodel:1.5.10") //Koin implementation(project.dependencies.platform("io.insert-koin:koin-bom:3.5.1")) implementation("io.insert-koin:koin-core") implementation("io.insert-koin:koin-compose") api("moe.tlaster:precompose-koin:1.5.10") //Ktor implementation(libs.ktor.client.core) implementation(libs.kotlinx.coroutines.core) implementation(libs.ktor.serialization) implementation(libs.ktor.content.negotiation) // Tests commonTest.dependencies { implementation(kotlin("test")) @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) implementation(compose.uiTest) } } iosMain.dependencies { //iOS dependencies implementation("app.cash.sqldelight:native-driver:2.0.1") implementation("co.touchlab:stately-common:2.0.5") //Ktor implementation(libs.ktor.client.darwin) } commonTest.dependencies { implementation(libs.kotlin.test) } } } android { namespace = "org.example.project" compileSdk = libs.versions.android.compileSdk.get().toInt() sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") sourceSets["main"].res.srcDirs("src/androidMain/res") sourceSets["main"].resources.srcDirs("src/commonMain/resources") defaultConfig { applicationId = "org.example.project" minSdk = libs.versions.android.minSdk.get().toInt() targetSdk = libs.versions.android.targetSdk.get().toInt() versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } buildTypes { getByName("release") { isMinifyEnabled = false } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlin { jvmToolchain(17) } dependencies { debugImplementation(libs.compose.ui.tooling) } buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.10" } }
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.
I'm trying to do ui tests on android(local) , from iOS, the test works as expected
Versions
To Reproduce Run the test either with the command
./gradlew :composeApp:connectedAndroidTest
or with green play button android(local)Expected behavior Test runs as iOS
Screenshots Test running correctly on iOS
Test fails on Android
Additional context I'm following this documentation https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-test.html#how-compose-multiplatform-testing-is-different-from-jetpack-compose
Gradle file