Better test setup for Android projects.

^KT-45745 In Progress
This commit is contained in:
Yahor Berdnikau
2021-10-06 16:00:03 +02:00
parent b07f78cc8b
commit 2f87c28634
5 changed files with 34 additions and 24 deletions
@@ -534,7 +534,12 @@ class KotlinJavaToolchainTest : KGPBaseTest() {
""".trimIndent()
)
build("assembleDebug", "-Pagp_version=${TestVersions.AGP.AGP_42}")
build(
"assembleDebug",
buildOptions = defaultBuildOptions.copy(
androidVersion = TestVersions.AGP.AGP_42
)
)
}
}
@@ -18,7 +18,6 @@ import org.junit.jupiter.api.io.TempDir
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.ArgumentsProvider
import java.nio.file.Path
import java.util.*
import java.util.stream.Stream
import kotlin.streams.asStream
@@ -46,7 +45,8 @@ abstract class KGPBaseTest {
val maxWorkers: Int = (Runtime.getRuntime().availableProcessors() / 4 - 1).coerceAtLeast(2),
val fileSystemWatchEnabled: Boolean = false,
val buildCacheEnabled: Boolean = false,
val kaptOptions: KaptOptions? = null
val kaptOptions: KaptOptions? = null,
val androidVersion: String? = null
) {
data class KaptOptions(
val verbose: Boolean = false,
@@ -113,6 +113,10 @@ abstract class KGPBaseTest {
}
}
if (androidVersion != null) {
arguments.add("-Pandroid_tools_version=${androidVersion}")
}
return arguments.toList()
}
}
@@ -22,6 +22,10 @@ interface TestVersions {
}
object AGP {
const val AGP_34 = "3.4.3"
const val AGP_36 = "3.6.4"
const val AGP_41 = "4.1.3"
const val AGP_42 = "4.2.2"
const val AGP_70 = "7.0.2"
}
}
@@ -14,12 +14,30 @@ internal val DEFAULT_GROOVY_SETTINGS_FILE =
repositories {
mavenLocal()
mavenCentral()
google()
gradlePluginPortal()
}
plugins {
id "org.jetbrains.kotlin.jvm" version "${'$'}kotlin_version"
id "org.jetbrains.kotlin.kapt" version "${'$'}kotlin_version"
id "org.jetbrains.kotlin.android" version "${'$'}kotlin_version"
}
resolutionStrategy {
eachPlugin {
if (requested.id.id == "com.android.application" ||
requested.id.id == "com.android.library" ||
requested.id.id == "com.android.test" ||
requested.id.id == "com.android.dynamic-feature" ||
requested.id.id == "com.android.asset-pack" ||
requested.id.id == "com.android.asset-pack-bundle" ||
requested.id.id == "com.android.lint" ||
requested.id.id == "com.android.instantapp" ||
requested.id.id == "com.android.feature") {
useModule("com.android.tools.build:gradle:${'$'}android_tools_version")
}
}
}
}
""".trimIndent()
@@ -1,21 +0,0 @@
pluginManagement {
repositories {
mavenLocal()
mavenCentral()
google()
}
plugins {
id "org.jetbrains.kotlin.jvm" version "$kotlin_version"
id "org.jetbrains.kotlin.android" version "$kotlin_version"
id "org.jetbrains.kotlin.kapt" version "$kotlin_version"
}
resolutionStrategy {
eachPlugin {
if (requested.id.id == "com.android.application") {
useModule("com.android.tools.build:gradle:$agp_version")
}
}
}
}