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/03/19 14:40:52 UTC
(grails-core) 01/01: build: enable running single tests with --tests flag
This is an automated email from the ASF dual-hosted git repository.
matrei pushed a commit to branch matrei/uber-tests-build
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 8959380ab8b616c7fca69a972a14e580aa9fd0a2
Author: Mattias Reichel <ma...@gmail.com>
AuthorDate: Thu Mar 19 15:40:16 2026 +0100
build: enable running single tests with --tests flag
And some cleanup.
---
grails-test-suite-uber/build.gradle | 83 ++++++++++++++-----------------------
1 file changed, 31 insertions(+), 52 deletions(-)
diff --git a/grails-test-suite-uber/build.gradle b/grails-test-suite-uber/build.gradle
index f92621756c..aa7b5efeb8 100644
--- a/grails-test-suite-uber/build.gradle
+++ b/grails-test-suite-uber/build.gradle
@@ -80,73 +80,58 @@ dependencies {
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
testRuntimeOnly 'org.springframework:spring-aspects'
-
// Testing
testImplementation('org.spockframework:spock-core') { transitive = false }
+
// Required by Spock's Mocking
testRuntimeOnly 'net.bytebuddy:byte-buddy'
}
def isolatedTestPatterns = [
- isolatedTestsOne : [
+ isolatedTestsOne: [
'org.grails.core.DefaultGrailsControllerClassSpec',
'org.grails.web.util.WebUtilsTests'
],
- isolatedTestsTwo : [
+ isolatedTestsTwo: [
'grails.test.mixin.UrlMappingsTestMixinTests',
'grails.test.mixin.SetupTeardownInvokeTests',
'grails.test.mixin.TestMixinSetupTeardownInvokeTests'
],
- isolatedRestRendererTests : [
+ isolatedRestRendererTests: [
'*.rest.render.*Spec'
],
- isolatedPersonTests : [
+ isolatedPersonTests: [
'org.grails.validation.TestingValidationSpec',
'org.grails.validation.CascadingErrorCountSpec'
],
isolatedRestfulControllerTests: [
'grails.test.mixin.RestfulControllerSpec',
'grails.test.mixin.ResourceAnnotationRestfulControllerSpec'
- ]
+ ],
+]
+
+def testSkippingProperties = [
+ 'onlyFunctionalTests',
+ 'onlyHibernate5Tests',
+ 'onlyMongodbTests',
+ 'skipCoreTests',
+ 'skipTests',
]
isolatedTestPatterns.keySet().each { taskName ->
- tasks.register(taskName, Test).configure { Test tTask ->
- tTask.onlyIf {
- ![
- 'onlyFunctionalTests',
- 'onlyHibernate5Tests',
- 'onlyMongodbTests',
- 'skipCoreTests',
- 'skipTests'
- ].find {
- project.hasProperty(it)
- }
- }
- tTask.group = 'verification'
- tTask.filter.includePatterns = isolatedTestPatterns[taskName]
+ tasks.register(taskName, Test) {
+ group = 'verification'
+ filter.includePatterns = isolatedTestPatterns[taskName]
}
}
-tasks.named('isolatedTestsTwo', Test).configure {
+tasks.named('isolatedTestsTwo', Test) {
maxParallelForks = 1
forkEvery = 100
}
tasks.withType(Test).configureEach {
- onlyIf {
- ![
- 'onlyHibernate5Tests',
- 'onlyMongodbTests',
- 'skipCoreTests'
- ].find {
- project.hasProperty(it)
- }
- }
-
- onlyIf {
- !project.hasProperty('onlyFunctionalTests')
- }
+ onlyIf { !testSkippingProperties.any {project.hasProperty(it) } }
useJUnitPlatform()
maxParallelForks = configuredTestParallel
forkEvery = isCiBuild ? 50 : 100
@@ -154,25 +139,19 @@ tasks.withType(Test).configureEach {
jvmArgs('--add-opens=java.base/java.lang=ALL-UNNAMED', '--add-opens=java.base/java.util=ALL-UNNAMED')
}
-tasks.named('test', Test).configure {
- onlyIf {
- ![
- 'onlyFunctionalTests',
- 'onlyHibernate5Tests',
- 'onlyMongodbTests',
- 'skipCoreTests',
- 'skipTests'
- ].find {
- project.hasProperty(it)
- }
- }
-
+tasks.named('test', Test) {
+ // Exclude the isolated tests from the main test task
filter.excludePatterns = isolatedTestPatterns.values().flatten()
- dependsOn(provider {
- tasks.findAll({
- isolatedTestPatterns.containsKey(it.name)
- })
- })
+}
+
+tasks.register('testAll') {
+ group = 'verification'
+ description = 'Runs all tests, including isolated ones.'
+ dependsOn(tasks.withType(Test))
+}
+
+tasks.named('check') {
+ dependsOn('testAll')
}
tasks.withType(Groovydoc).configureEach {