Skip to content

Commit

Permalink
[Gradle] add test for test-retry in KMP projects
Browse files Browse the repository at this point in the history
^KT-49155 Verification Pending
closes #5381
  • Loading branch information
antohaby committed Jan 9, 2025
1 parent 4c1ecff commit 194a335
Showing 1 changed file with 49 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@

package org.jetbrains.kotlin.gradle.mpp

import org.gradle.api.provider.Property
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.plugin.mpp.KmpIsolatedProjectsSupport
import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.util.replaceText
import org.junit.jupiter.api.DisplayName
import kotlin.io.path.createDirectories
import kotlin.io.path.writeText

@MppGradlePluginTests
@DisplayName("Tests for multiplatform testing")
Expand Down Expand Up @@ -113,4 +116,49 @@ class MppTestsIT : KGPBaseTest() {
)
}
}

@DisplayName("KT-49155: works with test-retry-gradle-plugin")
@GradleTest
fun worksWithTestRetryPlugin(gradleVersion: GradleVersion) {
project("base-kotlin-multiplatform-library", gradleVersion) {
buildGradleKts.replaceText("plugins {", """
plugins {
id("org.gradle.test-retry") version "1.6.0"
""".trimIndent())

buildScriptInjection {
kotlinMultiplatform.jvm().testRuns.configureEach {
it.executionTask.configure {
it.useJUnitPlatform()
val retryExtension = it.extensions.getByName("retry")

@Suppress("UNCHECKED_CAST")
val maxRetriesProperty = retryExtension.javaClass.getMethod("getMaxRetries").invoke(retryExtension) as Property<Int>
maxRetriesProperty.set(1)
}
}
kotlinMultiplatform.sourceSets.getByName("commonTest").dependencies {
implementation(kotlin("test"))
}
}

val jvmTest = kotlinSourcesDir("jvmTest")
jvmTest.createDirectories()
jvmTest.resolve("MyTest.kt").writeText("""
import kotlin.test.*
internal class MyTest {
@Test
fun myMethod() {
assertTrue(false)
}
}
""".trimIndent())

buildAndFail(":jvmTest") {
assertTasksFailed(":jvmTest")
assertOutputContainsExactlyTimes("MyTest[jvm] > myMethod()[jvm] FAILED", 2)
}
}
}
}

0 comments on commit 194a335

Please sign in to comment.