From d5ea91e28d77ff8d6d501d743190552407124cd0 Mon Sep 17 00:00:00 2001 From: Luke Daley Date: Tue, 2 Jun 2020 20:40:59 +1000 Subject: [PATCH] Adapt tests for JUnit vintage with older Gradle versions --- .../gradle/testretry/testframework/JUnit4FuncTest.groovy | 6 +++++- .../testframework/JUnit4ViaJUnitVintageFuncTest.groovy | 5 +++++ .../gradle/testretry/testframework/SpockFuncTest.groovy | 7 ++++++- .../testframework/SpockViaJUnitVintageFuncTest.groovy | 9 ++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4FuncTest.groovy b/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4FuncTest.groovy index aca7e098..36182a86 100644 --- a/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4FuncTest.groovy +++ b/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4FuncTest.groovy @@ -24,6 +24,10 @@ class JUnit4FuncTest extends AbstractPluginFuncTest { false } + protected String initializationErrorSyntheticTestMethodName(String gradleVersion) { + "initializationError" + } + @Unroll def "handles failure in #lifecycle (gradle version #gradleVersion)"() { given: @@ -205,7 +209,7 @@ class JUnit4FuncTest extends AbstractPluginFuncTest { def result = gradleRunner(gradleVersion).build() then: - result.output.count('FlakyTests > initializationError FAILED') == 1 + result.output.count("FlakyTests > ${initializationErrorSyntheticTestMethodName(gradleVersion)} FAILED") == 1 result.output.count('FlakyTests > someTest PASSED') == 1 where: diff --git a/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4ViaJUnitVintageFuncTest.groovy b/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4ViaJUnitVintageFuncTest.groovy index 901808b5..7448f52c 100644 --- a/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4ViaJUnitVintageFuncTest.groovy +++ b/plugin/src/test/groovy/org/gradle/testretry/testframework/JUnit4ViaJUnitVintageFuncTest.groovy @@ -22,6 +22,11 @@ class JUnit4ViaJUnitVintageFuncTest extends JUnit4FuncTest { true } + @Override + protected String initializationErrorSyntheticTestMethodName(String gradleVersion) { + gradleVersion == "5.0" ? "classMethod" : "initializationError" + } + protected String buildConfiguration() { return ''' dependencies { diff --git a/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockFuncTest.groovy b/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockFuncTest.groovy index 17f1ae15..ec8315cd 100644 --- a/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockFuncTest.groovy +++ b/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockFuncTest.groovy @@ -24,6 +24,10 @@ class SpockFuncTest extends AbstractPluginFuncTest { true } + protected String initializationErrorSyntheticTestMethodName(String gradleVersion) { + "initializationError" + } + @Unroll def "handles failure in #lifecycle (gradle version #gradleVersion)"() { given: @@ -87,7 +91,7 @@ class SpockFuncTest extends AbstractPluginFuncTest { def result = gradleRunner(gradleVersion as String).build() then: - result.output.count('SomeSpec > initializationError FAILED') == 1 + result.output.count("SomeSpec > ${initializationErrorSyntheticTestMethodName(gradleVersion)} FAILED") == 1 result.output.count('SomeSpec > someTest PASSED') == 1 result.output.count('2 tests completed, 1 failed') == 1 @@ -95,6 +99,7 @@ class SpockFuncTest extends AbstractPluginFuncTest { gradleVersion << GRADLE_VERSIONS_UNDER_TEST } + @Unroll def "handles @Stepwise tests (gradle version #gradleVersion)"() { given: diff --git a/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockViaJUnitVintageFuncTest.groovy b/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockViaJUnitVintageFuncTest.groovy index 711cbc2b..3a0d32eb 100644 --- a/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockViaJUnitVintageFuncTest.groovy +++ b/plugin/src/test/groovy/org/gradle/testretry/testframework/SpockViaJUnitVintageFuncTest.groovy @@ -21,6 +21,11 @@ class SpockViaJUnitVintageFuncTest extends SpockFuncTest { false } + @Override + protected String initializationErrorSyntheticTestMethodName(String gradleVersion) { + gradleVersion == "5.0" ? "classMethod" : "initializationError" + } + @Override String testLanguage() { 'groovy' @@ -30,7 +35,9 @@ class SpockViaJUnitVintageFuncTest extends SpockFuncTest { protected String buildConfiguration() { return """ dependencies { - testImplementation "org.codehaus.groovy:groovy-all:2.5.8" + testImplementation "org.codehaus.groovy:groovy-all:2.5.8", { + exclude group: "org.junit.jupiter" + } testImplementation "org.spockframework:spock-core:1.3-groovy-2.5" testImplementation "org.junit.jupiter:junit-jupiter-api:5.6.2" testRuntimeOnly "org.junit.vintage:junit-vintage-engine:5.6.2"