andylamax
09/20/2024, 3:20 AM> Task :academia-compose:connectedDebugAndroidTest
Starting 0 tests on Medium_Phone_API_35(AVD) - 15
I have managed to make them run in ios and desktop, but still failing on Androidandylamax
09/20/2024, 3:23 AMbuild.gradle.kts
looks like this
android {
defaultConfig {
minSdk = 25 // because of the coil dependency has this as it's min sdk
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
}
// ... some other stuffs
kotlin {
androidTarget {
compilations.all {
compileTaskProvider {
compilerOptions.jvmTarget = JvmTarget.JVM_17
}
}
@OptIn(ExperimentalKotlinGradlePluginApi::class)
instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
dependencies {
androidTestImplementation("androidx.compose.ui:ui-test-junit4-android:1.7.1")
debugImplementation("androidx.compose.ui:ui-test-manifest:1.7.1")
}
}
}
What am I missing??Kamil Kalisz
09/20/2024, 1:40 PMandroid {
...
dependencies {
debugImplementation(compose.uiTooling)
androidTestImplementation("androidx.compose.ui:ui-test-junit4-android:1.6.8")
debugImplementation("androidx.compose.ui:ui-test-manifest:1.6.8")
}
}
andylamax
09/20/2024, 2:41 PMKamil Kalisz
09/20/2024, 2:48 PMimport org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.kotlinPluginSerialization)
}
kotlin {
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
moduleName = "composeApp"
browser {
val projectDirPath = project.projectDir.path
commonWebpackConfig {
outputFileName = "composeApp.js"
devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply {
static = (static ?: mutableListOf()).apply {
// Serve sources to debug inside browser
add(projectDirPath)
}
}
}
}
binaries.executable()
}
androidTarget {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
@OptIn(ExperimentalKotlinGradlePluginApi::class)
instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
}
jvm("desktop")
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
sourceSets {
val desktopMain by getting
androidMain.dependencies {
implementation(compose.preview)
implementation(libs.androidx.activity.compose)
}
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(projects.shared)
api(libs.precompose)
api(libs.precompose.viewmodel)
implementation(libs.precompose.navigation.typesafe)
implementation(libs.kotlinx.serialization.core)
}
commonTest.dependencies {
implementation(kotlin("test"))
@OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
implementation(compose.uiTest)
}
desktopMain.dependencies {
implementation(compose.desktop.currentOs)
}
}
}
android {
namespace = "com.bngdev.undercover"
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 = "com.bngdev.undercover"
minSdk = 21
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_11
targetCompatibility = JavaVersion.VERSION_11
}
buildFeatures {
compose = true
}
dependencies {
debugImplementation(compose.uiTooling)
androidTestImplementation("androidx.compose.ui:ui-test-junit4-android:1.6.8")
debugImplementation("androidx.compose.ui:ui-test-manifest:1.6.8")
}
}
tasks.named<Task>("iosSimulatorArm64Test") {
dependsOn(tasks.clean)
}
Kamil Kalisz
09/20/2024, 2:49 PMandylamax
09/20/2024, 6:44 PMandylamax
09/20/2024, 7:00 PMandylamax
09/20/2024, 7:48 PMjava.lang.NoClassDefFoundError: androidx.test.espresso.Espresso
Looks like the tests are being picked up now, but they are now all failing with that error aboveKamil Kalisz
09/21/2024, 5:56 AM[versions]
agp = "8.2.2"
android-compileSdk = "34"
android-minSdk = "21"
android-targetSdk = "34"
androidx-activityCompose = "1.9.1"
androidx-appcompat = "1.7.0"
androidx-constraintlayout = "2.1.4"
androidx-core-ktx = "1.13.1"
androidx-espresso-core = "3.6.1"
androidx-lifecycle = "2.8.0"
androidx-material = "1.12.0"
androidx-test-junit = "1.2.1"
compose-plugin = "1.6.11"
junit = "4.13.2"
kotlin = "2.0.20"
kotlinxSerializationCore = "1.6.2"
ktor = "2.3.12"
logback = "1.5.7"
napier = "2.7.1"
navigationTypesafe = "0.3.1L"
precompose = "1.6.2"
uiTestManifest = "1.7.2"
koin-bom = "4.0.0"
andylamax
09/22/2024, 12:48 AM