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"/>
+
+
+
+
-
\ No newline at end of file
+
diff --git a/samples/kaspresso-sample/src/main/res/values-ru/strings.xml b/samples/kaspresso-sample/src/main/res/values-ru/strings.xml
index 45dc5f539..1c6146af5 100644
--- a/samples/kaspresso-sample/src/main/res/values-ru/strings.xml
+++ b/samples/kaspresso-sample/src/main/res/values-ru/strings.xml
@@ -10,6 +10,7 @@
Complex compose пример
Waiting for idle пример
Measure пример
+ Jetpack Compose примеры
Shared Test with Robolectric пример
diff --git a/samples/kaspresso-sample/src/main/res/values/strings.xml b/samples/kaspresso-sample/src/main/res/values/strings.xml
index a7ff602ec..3c051d954 100644
--- a/samples/kaspresso-sample/src/main/res/values/strings.xml
+++ b/samples/kaspresso-sample/src/main/res/values/strings.xml
@@ -10,6 +10,7 @@
Complex compose sample
Waiting for idle sample
Measure sample
+ Jetpack Compose samples
Shared Test with Robolectric sample