diff --git a/build-conventions/android-convention/src/main/kotlin/convention.android-library.gradle.kts b/build-conventions/android-convention/src/main/kotlin/convention.android-library.gradle.kts index 9a4675fbd..b3d2794f1 100644 --- a/build-conventions/android-convention/src/main/kotlin/convention.android-library.gradle.kts +++ b/build-conventions/android-convention/src/main/kotlin/convention.android-library.gradle.kts @@ -11,10 +11,11 @@ android { } } - @Suppress("UnstableApiUsage") - onVariants { - androidTest { - enabled = false - } - } + // todo doesn't work on AGP 4.2.2 +// @Suppress("UnstableApiUsage") +// onVariants { +// androidTest { +// enabled = false +// } +// } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bcc1f4112..40220b36d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,13 +1,15 @@ [versions] -kotlin = "1.4.32" +kotlin = "1.5.21" detekt = "1.18.1" espresso = "3.4.0" allure = "2.2.7" +compose = "1.0.2" +activityCompose = "1.3.1" [libraries] # plugins kotlinPlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -androidPlugin = "com.android.tools.build:gradle:4.1.0" +androidPlugin = "com.android.tools.build:gradle:4.2.2" # libraries kotlinCli = "org.jetbrains.kotlinx:kotlinx-cli:0.3" @@ -28,7 +30,16 @@ androidXCore = "androidx.core:core:1.7.0" androidXRules = "androidx.test:rules:1.4.0" androidXTest = "androidx.test.ext:junit:1.1.3" androidXTestKtx = "androidx.test.ext:junit-ktx:1.1.3" -composeUiTest = "androidx.compose.ui:ui-test:1.0.3" + +composeActivity = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" } +composeUiTooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } +composeMaterial = { module = "androidx.compose.material:material", version.ref = "compose" } +composeTestManifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" } +composeCompiler = { module = "androidx.compose.compiler:compiler", version.ref = "compose" } + +composeUiTest = { module = "androidx.compose.ui:ui-test", version.ref = "compose" } + +composeJunit = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" } appcompat = "androidx.appcompat:appcompat:1.3.0" material = "com.google.android.material:material:1.2.0" @@ -55,3 +66,4 @@ allureKotlinAndroid = { module = "io.qameta.allure:allure-kotlin-android", versi [bundles] espresso = ["espressoCore", "espressoWeb"] allure = ["allureKotlinModel", "allureKotlinCommons", "allureKotlinJunit4", "allureKotlinAndroid"] +compose = ["composeActivity", "composeUiTooling", "composeMaterial", "composeTestManifest", "composeCompiler"] diff --git a/kaspresso/build.gradle.kts b/kaspresso/build.gradle.kts index 671d29ab8..4886923cf 100644 --- a/kaspresso/build.gradle.kts +++ b/kaspresso/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { implementation(libs.kotlinStdlib) implementation(libs.gson) implementation(projects.adbServer.adbserverDevice) + // todo remove woth kakao-compose 0.0.3 implementation(libs.composeUiTest) testImplementation(libs.junit) diff --git a/samples/kaspresso-sample/build.gradle.kts b/samples/kaspresso-sample/build.gradle.kts index 4803e68ba..0c18e77cd 100644 --- a/samples/kaspresso-sample/build.gradle.kts +++ b/samples/kaspresso-sample/build.gradle.kts @@ -9,6 +9,15 @@ android { testInstrumentationRunnerArguments["clearPackageData"] = "true" } + buildFeatures { + compose = true + } + + composeOptions { + kotlinCompilerVersion = libs.versions.kotlin.get() + kotlinCompilerExtensionVersion = libs.versions.compose.get() + } + sourceSets { val main by getting { java.srcDir("src/main/kotlin") @@ -37,6 +46,7 @@ dependencies { implementation(libs.appcompat) implementation(libs.material) implementation(libs.constraint) + implementation(libs.bundles.compose) androidTestImplementation(libs.runner) androidTestImplementation(libs.junit) @@ -44,6 +54,7 @@ dependencies { androidTestImplementation(libs.androidXRules) androidTestImplementation(libs.androidXTestKtx) androidTestImplementation(libs.androidXTest) + androidTestImplementation(libs.composeJunit) androidTestUtil(libs.orchestrator) @@ -54,6 +65,7 @@ dependencies { testImplementation(libs.androidXTestKtx) testImplementation(libs.androidXTest) testImplementation(libs.robolectric) + testImplementation(libs.composeJunit) debugImplementation(libs.fragmentTesting) } diff --git a/samples/kaspresso-sample/src/main/AndroidManifest.xml b/samples/kaspresso-sample/src/main/AndroidManifest.xml index 918f2414f..e0bccedcc 100644 --- a/samples/kaspresso-sample/src/main/AndroidManifest.xml +++ b/samples/kaspresso-sample/src/main/AndroidManifest.xml @@ -79,6 +79,10 @@ android:name=".sharedtest.SharedTestActivity" android:label="@string/main_screen_shared_test"/> + + +