You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ma...@apache.org on 2026/08/06 06:52:52 UTC
(grails-core) 01/01: build(refactor): replace deprecated Gradle test listener creation
This is an automated email from the ASF dual-hosted git repository.
matrei pushed a commit to branch refactor-depr-gradle-test-listeners
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 3d614f9985d0e355c8219f7420eabc47b6ba4e7a
Author: Mattias Reichel <ma...@gmail.com>
AuthorDate: Thu Aug 6 08:52:29 2026 +0200
build(refactor): replace deprecated Gradle test listener creation
---
dependencies.gradle | 2 +-
etc/bin/test-bisect.groovy | 57 +++++++++++-----------
gradle/hibernate5-test-config.gradle | 24 ++++-----
gradle/hibernate7-test-config.gradle | 24 ++++-----
gradle/mongodb-forked-test-config.gradle | 10 ++--
gradle/mongodb-test-config.gradle | 10 ++--
gradle/redis-test-config.gradle | 4 +-
gradle/spring-security-test-config.gradle | 4 +-
gradle/test-config.gradle | 34 +++++++------
.../grails-datastore-gorm-neo4j/build.gradle | 10 ++--
10 files changed, 100 insertions(+), 79 deletions(-)
diff --git a/dependencies.gradle b/dependencies.gradle
index 29bc297882..85c0b5cabb 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -122,7 +122,7 @@ ext {
'plexus-xml.version' : '3.0.2',
'rxjava.version' : '1.3.8',
'rxjava2.version' : '2.2.21',
- 'selenium.version' : '4.38.0',
+ 'selenium.version' : '4.46.0',
'sitemesh.version' : '2.6.0',
'scribejava.version' : '8.3.3',
'spock.version' : '2.4-groovy-5.0',
diff --git a/etc/bin/test-bisect.groovy b/etc/bin/test-bisect.groovy
index bf32d25f27..9a85992802 100644
--- a/etc/bin/test-bisect.groovy
+++ b/etc/bin/test-bisect.groovy
@@ -24,35 +24,36 @@ import groovy.cli.commons.CliBuilder
/**
* This script finds the test class that's causing test pollution in other tests.
- * To use it, gradle must be configured to run sequentially, without retries, and output a specific line
- * so the script knows the test order. The script will pass the property `testBisect` for gradle to detect when being called
- * by this script. For example:
+ * To use it, Gradle must be configured to run sequentially, without retries, and output a specific line
+ * so the script knows the test order. The script will pass the property `testBisect` for Gradle to detect when
+ * being called by this script. For example:
*
- * if(hasProperty('testBisect')) {
- * tasks.withType(Test).configureEach {
- * maxParallelForks = 1
- * forkEvery = 0
- * develocity {
- * testDistribution {
- * enabled.set(false)
- * retryInSameJvm.set(true)
- * }
- * testRetry {
- * maxRetries = 1
- * maxFailures = 1
- * failOnPassedAfterRetry = true
- * }
- * }
- * beforeTest { testDescriptor ->
- * logger.info "STARTED TEST: ${testDescriptor.className} > ${testDescriptor.name}"
- * }
- * afterSuite { desc, result ->
- * if (!desc.parent) {
- * logger.info("FINISHED - ${result.failedTestCount == 0 && result.testCount > 1} ? 'PASSED' : 'FAILED'} - ${result.testCount} tests executed, ${result.failedTestCount} failed")
- * }
- * }
- * }
- * }
+ * if (hasProperty('testBisect')) {
+ * tasks.withType(Test).configureEach {
+ * maxParallelForks = 1
+ * forkEvery = 0
+ * develocity {
+ * testDistribution {
+ * enabled.set(false)
+ * retryInSameJvm.set(true)
+ * }
+ * testRetry {
+ * maxRetries = 1
+ * maxFailures = 1
+ * failOnPassedAfterRetry = true
+ * }
+ * }
+ * addTestListener([
+ * beforeTest: { testDescriptor ->
+ * logger.info("STARTED TEST: ${testDescriptor.className} > ${testDescriptor.name}")
+ * }
+ * afterSuite: { desc, result ->
+ * if (!desc.parent) {
+ * logger.info("FINISHED - ${result.failedTestCount == 0 && result.testCount > 1} ? 'PASSED' : 'FAILED'} - ${result.testCount} tests executed, ${result.failedTestCount} failed")
+ * }
+ * ] as TestListener)
+ * }
+ * }
*/
class TestPollution {
diff --git a/gradle/hibernate5-test-config.gradle b/gradle/hibernate5-test-config.gradle
index 609e110e07..e8631ab695 100644
--- a/gradle/hibernate5-test-config.gradle
+++ b/gradle/hibernate5-test-config.gradle
@@ -67,16 +67,18 @@ tasks.withType(Test).configureEach {
info.events = debug.events
info.exceptionFormat = debug.exceptionFormat
}
- afterTest { desc, result ->
- logger.quiet(' -- Executed test {} [{}] with result: {}', desc.name, desc.className, result.resultType)
- }
- afterSuite { desc, result ->
- if (!desc.parent) { // will match the outermost suite
- def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
- def startItem = '| ', endItem = ' |'
- def repeatLength = startItem.length() + output.length() + endItem.length()
- def dashes = '-' * repeatLength
- logger.quiet('\n{}\n{}{}{}\n{}', dashes, startItem, output, endItem, dashes)
+ addTestListener([
+ afterTest: { desc, result ->
+ logger.quiet(' -- Executed test {} [{}] with result: {}', desc.name, desc.className, result.resultType)
+ },
+ afterSuite: { desc, result ->
+ if (!desc.parent) { // will match the outermost suite
+ def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
+ def startItem = '| ', endItem = ' |'
+ def repeatLength = startItem.length() + output.length() + endItem.length()
+ def dashes = '-' * repeatLength
+ logger.quiet('\n{}\n{}{}{}\n{}', dashes, startItem, output, endItem, dashes)
+ }
}
- }
+ ] as TestListener)
}
diff --git a/gradle/hibernate7-test-config.gradle b/gradle/hibernate7-test-config.gradle
index 2753ebbf72..6e5a16ff98 100644
--- a/gradle/hibernate7-test-config.gradle
+++ b/gradle/hibernate7-test-config.gradle
@@ -65,16 +65,18 @@ tasks.withType(Test).configureEach {
info.events = debug.events
info.exceptionFormat = debug.exceptionFormat
}
- afterTest { desc, result ->
- logger.quiet(' -- Executed test {} [{}] with result: {}', desc.name, desc.className, result.resultType)
- }
- afterSuite { desc, result ->
- if (!desc.parent) { // will match the outermost suite
- def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
- def startItem = '| ', endItem = ' |'
- def repeatLength = startItem.length() + output.length() + endItem.length()
- def dashes = '-' * repeatLength
- logger.quiet('\n{}\n{}{}{}\n{}', dashes, startItem, output, endItem, dashes)
+ addTestListener([
+ afterTest: { desc, result ->
+ logger.quiet(' -- Executed test {} [{}] with result: {}', desc.name, desc.className, result.resultType)
+ },
+ afterSuite: { desc, result ->
+ if (!desc.parent) { // will match the outermost suite
+ def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
+ def startItem = '| ', endItem = ' |'
+ def repeatLength = startItem.length() + output.length() + endItem.length()
+ def dashes = '-' * repeatLength
+ logger.quiet('\n{}\n{}{}{}\n{}', dashes, startItem, output, endItem, dashes)
+ }
}
- }
+ ] as TestListener)
}
diff --git a/gradle/mongodb-forked-test-config.gradle b/gradle/mongodb-forked-test-config.gradle
index 6483563e82..77f2703322 100644
--- a/gradle/mongodb-forked-test-config.gradle
+++ b/gradle/mongodb-forked-test-config.gradle
@@ -52,10 +52,12 @@ tasks.withType(Test).configureEach {
useJUnitPlatform()
maxParallelForks = configuredTestParallel
jvmArgs = ['-Xmx768M']
- afterSuite {
- System.out.print('.')
- System.out.flush()
- }
+ addTestListener([
+ afterSuite: { desc, result ->
+ System.out.print('.')
+ System.out.flush()
+ }
+ ] as TestListener)
testLogging {
events('passed', 'skipped', 'failed')
exceptionFormat = 'full'
diff --git a/gradle/mongodb-test-config.gradle b/gradle/mongodb-test-config.gradle
index 491dc3d57f..ddbdb2818a 100644
--- a/gradle/mongodb-test-config.gradle
+++ b/gradle/mongodb-test-config.gradle
@@ -52,10 +52,12 @@ tasks.withType(Test).configureEach {
useJUnitPlatform()
maxParallelForks = 1
jvmArgs = ['-Xmx1028M']
- afterSuite {
- System.out.print('.')
- System.out.flush()
- }
+ addTestListener([
+ afterSuite: { desc, result ->
+ System.out.print('.')
+ System.out.flush()
+ }
+ ] as TestListener)
testLogging {
events('passed', 'skipped', 'failed')
exceptionFormat = 'full'
diff --git a/gradle/redis-test-config.gradle b/gradle/redis-test-config.gradle
index e79a2c624f..2d861ea005 100644
--- a/gradle/redis-test-config.gradle
+++ b/gradle/redis-test-config.gradle
@@ -43,7 +43,9 @@ tasks.withType(Test).configureEach {
exceptionFormat = 'full'
events 'passed', 'skipped', 'failed'
}
- beforeTest { descriptor -> logger.quiet(" -- $descriptor") }
+ addTestListener([
+ beforeTest: { descriptor -> logger.quiet(" -- $descriptor") }
+ ] as TestListener)
// Forwarded to org.apache.grails.testing.redis extensions to control the Testcontainers Redis image version
if (project.hasProperty('redisContainerVersion')) {
diff --git a/gradle/spring-security-test-config.gradle b/gradle/spring-security-test-config.gradle
index 75c2c44b1d..9d8efd1512 100644
--- a/gradle/spring-security-test-config.gradle
+++ b/gradle/spring-security-test-config.gradle
@@ -43,7 +43,9 @@ tasks.withType(Test).configureEach {
exceptionFormat = 'full'
events 'passed', 'skipped', 'failed'//, 'standardOut', 'standardError'
}
- beforeTest { descriptor -> logger.quiet(" -- $descriptor") }
+ addTestListener([
+ beforeTest: { descriptor -> logger.quiet(" -- $descriptor") }
+ ] as TestListener)
}
tasks.named('integrationTest', Test) {
diff --git a/gradle/test-config.gradle b/gradle/test-config.gradle
index 12a9476a89..e4ad66b9c5 100644
--- a/gradle/test-config.gradle
+++ b/gradle/test-config.gradle
@@ -89,10 +89,12 @@ tasks.withType(Test).configureEach {
if (System.getProperty('debug.tests')) {
jvmArgs += debugArguments
}
- afterSuite {
- System.out.print('.')
- System.out.flush()
- }
+ addTestListener([
+ afterSuite: { desc, result ->
+ System.out.print('.')
+ System.out.flush()
+ }
+ ] as TestListener)
// Bridge Geb-specific properties (e.g. from local.properties) to the Test JVM
// to allow local overrides of Docker images and other settings.
project.properties.each { key, value ->
@@ -119,15 +121,19 @@ if (hasProperty('testBisect')) {
}
}
- beforeTest { testDescriptor ->
- logger.info('STARTED TEST: {} > {}', testDescriptor.className, testDescriptor.name)
- }
-
- afterSuite { desc, result ->
- if (!desc.parent) {
- def testStatus = result.failedTestCount == 0 && result.testCount > 1 ? 'PASSED' : 'FAILED'
- logger.info('FINISHED - {} - {} tests executed, {} failed', testStatus, result.testCount, result.failedTestCount)
- }
- }
+ addTestListener([
+ beforeTest: { testDescriptor ->
+ logger.info('STARTED TEST: {} > {}', testDescriptor.className, testDescriptor.name)
+ },
+ afterSuite: { suite, result ->
+ if (!suite.parent) {
+ def testStatus = result.failedTestCount == 0 && result.testCount > 1 ? 'PASSED' : 'FAILED'
+ logger.info(
+ 'FINISHED - {} - {} tests executed, {} failed',
+ testStatus, result.testCount, result.failedTestCount
+ )
+ }
+ }
+ ] as TestListener)
}
}
diff --git a/grails-data-neo4j/grails-datastore-gorm-neo4j/build.gradle b/grails-data-neo4j/grails-datastore-gorm-neo4j/build.gradle
index 8f1555f004..8267779b0a 100644
--- a/grails-data-neo4j/grails-datastore-gorm-neo4j/build.gradle
+++ b/grails-data-neo4j/grails-datastore-gorm-neo4j/build.gradle
@@ -51,10 +51,12 @@ test {
forkEvery = 10
jvmArgs = ['-Xmx1028M']
- afterSuite {
- System.out.print('.')
- System.out.flush()
- }
+ addTestListener([
+ afterSuite: { desc, result ->
+ System.out.print('.')
+ System.out.flush()
+ }
+ ] as TestListener)
}
test.doFirst {