Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 99f66a7

Browse files
authored
Merge branch '4.0.x' into renovate/javaparserversion
2 parents 9797f38 + b5c2235 commit 99f66a7

File tree

19 files changed

+300
-221
lines changed

19 files changed

+300
-221
lines changed

.github/workflows/gradle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
id: tests
3030
uses: gradle/gradle-build-action@v3
3131
with:
32-
arguments: check
32+
arguments: check -Dgeb.env=chromeHeadless
3333
env:
3434
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
3535
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
@@ -43,7 +43,7 @@ jobs:
4343
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
4444
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
4545
with:
46-
arguments: build
46+
arguments: build -Dgeb.env=chromeHeadless
4747
- name: Publish Test Report
4848
if: steps.build.outcome == 'failure' || steps.tests.outcome == 'failure'
4949
uses: scacap/action-surefire-report@v1
Lines changed: 97 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,150 +1,145 @@
1-
# Licensed to the Apache Software Foundation (ASF) under one or more
2-
# contributor license agreements. See the NOTICE file distributed with
3-
# this work for additional information regarding copyright ownership.
4-
# The ASF licenses this file to You under the Apache License, Version 2.0
5-
# (the "License"); you may not use this file except in compliance with
6-
# the License. You may obtain a copy of the License at
7-
#
8-
# http://www.apache.org/licenses/LICENSE-2.0
9-
#
10-
# Unless required by applicable law or agreed to in writing, software
11-
# distributed under the License is distributed on an "AS IS" BASIS,
12-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
# See the License for the specific language governing permissions and
14-
# limitations under the License.
15-
16-
name: "Grails Joint Validation Build"
17-
# GROOVY_2_5_X == Grails 4.0.x
18-
# GROOVY_3_0_X == grails master
19-
# Groovy master branch does not map to any due to changed package names.
1+
name: "Groovy Joint Validation Build"
202
on:
213
push:
224
branches:
23-
- '[3-9]+.[1-9]+.x'
5+
- '[3-9]+.[0-9]+.x'
246
pull_request:
257
branches:
26-
- '[3-9]+.[1-9]+.x'
8+
- '[3-9]+.[0-9]+.x'
279
workflow_dispatch:
2810
permissions:
2911
contents: read
30-
env:
31-
CI_GROOVY_VERSION:
3212
jobs:
3313
build_groovy:
34-
strategy:
35-
fail-fast: true
3614
runs-on: ubuntu-latest
3715
outputs:
3816
groovyVersion: ${{ steps.groovy-version.outputs.value }}
3917
steps:
40-
- name: Set up JDK
18+
- name: "☕️ Setup JDK"
4119
uses: actions/setup-java@v4
4220
with:
43-
distribution: 'temurin'
44-
java-version: '17'
45-
- name: Cache local Maven repository & Groovy
21+
distribution: temurin
22+
java-version: 17
23+
- name: "🗄️ Cache local Maven repository"
4624
uses: actions/cache@v4
4725
with:
48-
path: |
49-
~/groovy
50-
~/.m2/repository
51-
key: cache-local-groovy-maven-${{ github.sha }}
52-
- name: Checkout Groovy 3_0_X (Grails 5 and later)
53-
if: startsWith(github.ref, 'refs/heads/3.') || startsWith(github.base_ref, '3.')
54-
run: cd .. && git clone --depth 1 https://github.com/apache/groovy.git -b GROOVY_3_0_X --single-branch
55-
- name: Set CI_GROOVY_VERSION for Grails
26+
path: ~/.m2/repository
27+
key: cache-local-maven-${{ github.sha }}
28+
- name: "📥 Checkout Grails Testing Support to fetch Gradle Plugin versions it uses"
29+
uses: actions/checkout@v4
30+
with:
31+
sparse-checkout-cone-mode: false
32+
sparse-checkout: settings.gradle
33+
- name: "📝 Store the Gradle Plugin versions used in Grails Testing Support"
34+
id: gradle-plugin-versions
35+
run: |
36+
DEVELOCITY_PLUGIN_VERSION=$(grep -m 1 'id\s*\(\"com.gradle.develocity\"\|'"'com.gradle.develocity'"'\)\s*version' settings.gradle | sed -E "s/.*version[[:space:]]*['\"]?([0-9]+\.[0-9]+(\.[0-9]+)?)['\"]?.*/\1/" | tr -d [:space:])
37+
COMMON_CUSTOM_USER_DATA_PLUGIN_VERSION=$(grep -m 1 'id\s*\(\"com.gradle.common-custom-user-data-gradle-plugin\"\|'"'com.gradle.common-custom-user-data-gradle-plugin'"'\)\s*version' settings.gradle | sed -E "s/.*version[[:space:]]*['\"]?([0-9]+\.[0-9]+(\.[0-9]+)?)['\"]?.*/\1/" | tr -d [:space:])
38+
echo "Project uses Develocity Plugin version: $DEVELOCITY_PLUGIN_VERSION"
39+
echo "Project uses Common Custom User Data Plugin version: $COMMON_CUSTOM_USER_DATA_PLUGIN_VERSION"
40+
echo "develocity_plugin_version=$DEVELOCITY_PLUGIN_VERSION" >> $GITHUB_OUTPUT
41+
echo "common_custom_user_data_plugin_version=$COMMON_CUSTOM_USER_DATA_PLUGIN_VERSION" >> $GITHUB_OUTPUT
42+
rm settings.gradle
43+
- name: "📥 Checkout Groovy 4_0_X (Grails 7 and later)"
44+
run: git clone --depth 1 https://github.com/apache/groovy.git -b GROOVY_4_0_X --single-branch
45+
- name: "🐘 Setup Gradle"
46+
uses: gradle/actions/setup-gradle@v4
47+
with:
48+
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
49+
- name: "📝 Store Groovy version to use when building Grails Testing Support"
5650
id: groovy-version
5751
run: |
58-
cd ../groovy
59-
echo "CI_GROOVY_VERSION=$(cat gradle.properties | grep groovyVersion | cut -d\= -f2 | tr -d '[:space:]')" >> $GITHUB_ENV
60-
echo "value=$(cat gradle.properties | grep groovyVersion | cut -d\= -f2 | tr -d '[:space:]')" >> $GITHUB_OUTPUT
61-
- name: Prepare GE Set-up Configuration
62-
id: ge_conf
52+
cd groovy
53+
GROOVY_VERSION=$(cat gradle.properties | grep groovyVersion | cut -d\= -f2 | tr -d '[:space:]')
54+
echo "Groovy version $GROOVY_VERSION stored"
55+
echo "value=$GROOVY_VERSION" >> $GITHUB_OUTPUT
56+
- name: "🐘 Configure Gradle Plugins (Step 1/3)"
57+
id: develocity-conf-1
6358
run: |
6459
echo "VALUE<<EOF" >> $GITHUB_OUTPUT
6560
echo "plugins { " >> $GITHUB_OUTPUT
66-
echo " id 'com.gradle.enterprise' version '3.15.1'" >> $GITHUB_OUTPUT
67-
echo " id 'com.gradle.common-custom-user-data-gradle-plugin' version '1.11.3'" >> $GITHUB_OUTPUT
68-
echo "}" >> $GITHUB_OUTPUT
61+
echo " id 'com.gradle.develocity' version '${{ steps.gradle-plugin-versions.outputs.develocity_plugin_version }}'" >> $GITHUB_OUTPUT
62+
echo " id 'com.gradle.common-custom-user-data-gradle-plugin' version '${{ steps.gradle-plugin-versions.outputs.common_custom_user_data_plugin_version }}'" >> $GITHUB_OUTPUT
63+
echo "}" >> $GITHUB_OUTPUT
64+
echo "" >> $GITHUB_OUTPUT
65+
echo "EOF" >> $GITHUB_OUTPUT
66+
- name: "🐘 Configure Gradle Plugins (Step 2/3)"
67+
id: develocity-conf-2
68+
run: |
69+
echo "VALUE<<EOF" >> $GITHUB_OUTPUT
70+
echo "def isAuthenticated = System.getenv('DEVELOCITY_ACCESS_KEY') != null" >> $GITHUB_OUTPUT
71+
echo "def isBuildCacheAuthenticated =" >> $GITHUB_OUTPUT
72+
echo " System.getenv('DEVELOCITY_BUILD_CACHE_NODE_USER') != null &&" >> $GITHUB_OUTPUT
73+
echo " System.getenv('DEVELOCITY_BUILD_CACHE_NODE_KEY') != null" >> $GITHUB_OUTPUT
6974
echo "" >> $GITHUB_OUTPUT
70-
echo "gradleEnterprise {" >> $GITHUB_OUTPUT
75+
echo "develocity {" >> $GITHUB_OUTPUT
7176
echo " server = 'https://ge.grails.org'" >> $GITHUB_OUTPUT
7277
echo " buildScan {" >> $GITHUB_OUTPUT
73-
echo " publishAlways()" >> $GITHUB_OUTPUT
74-
echo " publishIfAuthenticated()" >> $GITHUB_OUTPUT
75-
echo " uploadInBackground = System.getenv('CI') == null" >> $GITHUB_OUTPUT
76-
echo " capture {" >> $GITHUB_OUTPUT
77-
echo " taskInputFiles = true" >> $GITHUB_OUTPUT
78-
echo " }" >> $GITHUB_OUTPUT
78+
echo " publishing.onlyIf { isAuthenticated }" >> $GITHUB_OUTPUT
79+
echo " uploadInBackground = false" >> $GITHUB_OUTPUT
7980
echo " }" >> $GITHUB_OUTPUT
8081
echo "}" >> $GITHUB_OUTPUT
8182
echo "" >> $GITHUB_OUTPUT
8283
echo "buildCache {" >> $GITHUB_OUTPUT
83-
echo " local { enabled = System.getenv('CI') != 'true' }" >> $GITHUB_OUTPUT
84-
echo " remote(HttpBuildCache) {" >> $GITHUB_OUTPUT
85-
echo " push = System.getenv('CI') == 'true'" >> $GITHUB_OUTPUT
84+
echo " local { enabled = false }" >> $GITHUB_OUTPUT
85+
echo " remote(develocity.buildCache) {" >> $GITHUB_OUTPUT
86+
echo " push = isBuildCacheAuthenticated" >> $GITHUB_OUTPUT
8687
echo " enabled = true" >> $GITHUB_OUTPUT
87-
echo " url = 'https://ge.grails.org/cache/'" >> $GITHUB_OUTPUT
88-
echo " credentials {" >> $GITHUB_OUTPUT
89-
echo " username = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER')" >> $GITHUB_OUTPUT
90-
echo " password = System.getenv('GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY')" >> $GITHUB_OUTPUT
91-
echo " }" >> $GITHUB_OUTPUT
88+
echo " usernameAndPassword(" >> $GITHUB_OUTPUT
89+
echo " System.getenv('DEVELOCITY_BUILD_CACHE_NODE_USER') ?: ''," >> $GITHUB_OUTPUT
90+
echo " System.getenv('DEVELOCITY_BUILD_CACHE_NODE_KEY') ?: ''" >> $GITHUB_OUTPUT
91+
echo " )" >> $GITHUB_OUTPUT
9292
echo " }" >> $GITHUB_OUTPUT
9393
echo "}" >> $GITHUB_OUTPUT
9494
echo "" >> $GITHUB_OUTPUT
9595
echo "EOF" >> $GITHUB_OUTPUT
96-
- name: Gradle Enterprise Set-up
96+
- name: "🐘 Configure Gradle Plugins (step 3/3)"
9797
run: |
98-
cd ../groovy
99-
# Delete exiting plugins and build-scan from settings.gradle file
100-
sed -i '21,31d' settings.gradle
101-
# Add Gradle Enterprise set-up related configuration after line no 20 in settings.gradle
102-
echo "${{ steps.ge_conf.outputs.value}}" | sed -i -e "20r /dev/stdin" settings.gradle
103-
- name: Build and install groovy (no docs)
104-
uses: gradle/gradle-build-action@v3
98+
cd groovy
99+
# Delete existing plugins from settings.gradle file
100+
sed -i '32,37d' settings.gradle
101+
# Add Develocity setup related configuration after line no 31 in settings.gradle
102+
echo "${{ steps.develocity-conf-1.outputs.value }}" | sed -i -e "31r /dev/stdin" settings.gradle
103+
# Delete existing buildCache configuration from gradle/build-scans.gradle file
104+
sed -i '23,46d' gradle/build-scans.gradle
105+
# Add Develocity setup related configuration after line no 22 in gradle/build-scans.gradle
106+
echo "${{ steps.develocity-conf-2.outputs.value }}" | sed -i -e "22r /dev/stdin" gradle/build-scans.gradle
107+
- name: "🔨 Publish Groovy to local maven repository (no docs)"
105108
env:
106-
GRADLE_SCANS_ACCEPT: yes
107-
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
108-
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
109-
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
110-
with:
111-
build-root-directory: ../groovy
112-
arguments: |
113-
install
114-
-x groovydoc
115-
-x javadoc
116-
-x javadocAll
117-
-x groovydocAll
118-
-x asciidoc
119-
-x docGDK
109+
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
110+
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
111+
run: |
112+
cd groovy
113+
./gradlew pTML -x groovydoc -x javadoc -x javadocAll -x groovydocAll -x asciidoc -x docGDK
114+
120115
build_grails_testing_support:
121116
needs: [build_groovy]
122-
strategy:
123-
fail-fast: true
124117
runs-on: ubuntu-latest
125118
steps:
126-
- uses: actions/checkout@v4
127-
- name: Set up JDK
119+
- name: "📥 Checkout project"
120+
uses: actions/checkout@v4
121+
- name: "☕️ Setup JDK"
128122
uses: actions/setup-java@v4
129123
with:
130124
distribution: temurin
131125
java-version: 17
132-
- name: Cache local Maven repository & Groovy
126+
- name: "🐘 Setup Gradle"
127+
uses: gradle/actions/setup-gradle@v4
128+
with:
129+
develocity-access-key: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
130+
- name: "🗄️ Restore local Maven repository from cache"
133131
uses: actions/cache@v4
134132
with:
135-
path: |
136-
~/groovy
137-
~/.m2/repository
138-
key: cache-local-groovy-maven-${{ github.sha }}
139-
- name: Set CI_GROOVY_VERSION for Grails
140-
run: |
141-
echo "CI_GROOVY_VERSION=${{needs.build_groovy.outputs.groovyVersion}}" >> $GITHUB_ENV
142-
- name: Build
143-
id: build
144-
uses: gradle/gradle-build-action@v3
133+
path: ~/.m2/repository
134+
key: cache-local-maven-${{ github.sha }}
135+
- name: "🪶 Add mavenLocal repository to build"
136+
run: sed -i 's|// mavenLocal() // Keep|mavenLocal() // Keep|' build.gradle
137+
- name: "🔨 Build and test Grails Testing Support using the locally built Groovy snapshot"
145138
env:
146-
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
147-
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
148-
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
149-
with:
150-
arguments: build
139+
DEVELOCITY_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
140+
DEVELOCITY_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
141+
run: >
142+
./gradlew build
143+
-Dgeb.env=chromeHeadless
144+
-PgroovyVersion=${{needs.build_groovy.outputs.groovyVersion}}
145+
-x groovydoc

README.adoc

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
# Grails Testing Support
22

3-
image:https://github.com/grails/grails-testing-support/actions/workflows/gradle.yml/badge.svg["Java CI", link: "https://github.com/grails/grails-testing-support/actions/workflows/gradle.yml"]
3+
image:https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Develocity", link=https://ge.grails.org/scans]
4+
image:https://github.com/grails/grails-testing-support/actions/workflows/gradle.yml/badge.svg?event=push["Java CI", link=https://github.com/grails/grails-testing-support/actions/workflows/gradle.yml]
5+
image:https://github.com/grails/grails-testing-support/actions/workflows/groovy-joint-workflow.yml/badge.svg?event=push["Groovy Joint Validation Build", link=https://github.com/grails/grails-testing-support/actions/workflows/groovy-joint-workflow.yml]
46

57
Documentation is available at link:https://testing.grails.org[https://testing.grails.org/]
68

7-
Grails 3.x branch is https://github.com/grails/grails-testing-support/tree/1.1.x[1.1.x].
9+
Documentation SNAPSHOT is available at link:https://testing.grails.org/snapshot/guide/index.html[https://testing.grails.org/snapshot/guide/index.html]
810

9-
Grails 4.0.x branch is https://github.com/grails/grails-testing-support/tree/2.1.x[2.1.x].
11+
Grails 7.0 branch is https://github.com/grails/grails-testing-support/tree/4.0.x[4.0.x]
12+
13+
Grails 6.2 branch is https://github.com/grails/grails-testing-support/tree/3.2.x[3.2.x]
14+
15+
Grails 6.1 branch is https://github.com/grails/grails-testing-support/tree/3.1.x[3.1.x]
16+
17+
Grails 6 branch is https://github.com/grails/grails-testing-support/tree/3.0.x[3.0.x]
1018

1119
Grails 5 branch is https://github.com/grails/grails-testing-support/tree/2.4.x[2.4.x] which includes support for Groovy 3.
1220

13-
Please checkout https://github.com/grails/grails-testing-support/releases[release notes] for more information.
21+
Grails 4.0.x branch is https://github.com/grails/grails-testing-support/tree/2.1.x[2.1.x].
22+
23+
Grails 3.x branch is https://github.com/grails/grails-testing-support/tree/1.1.x[1.1.x].
24+
25+
Please see https://github.com/grails/grails-testing-support/releases[release notes] for more information.

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ allprojects {
4242
repositories {
4343
maven { url "https://repo.grails.org/grails/core" }
4444
mavenCentral()
45+
// mavenLocal() // Keep, this will be uncommented and used by CI (groovy-joint-workflow)
4546
if (groovyVersion && groovyVersion.endsWith('-SNAPSHOT')) {
4647
maven {
4748
name = 'ASF Snapshot repo'
@@ -72,7 +73,7 @@ subprojects { project ->
7273
apply plugin: "groovy"
7374
if (project.name.startsWith("examples")) {
7475
apply plugin: "org.grails.grails-web"
75-
apply plugin: "org.grails.plugins.views-json"
76+
//apply plugin: "org.grails.plugins.views-json"
7677
} else {
7778
apply plugin: "java-library"
7879
if (isGrailsPlugin) {
@@ -125,6 +126,7 @@ subprojects { project ->
125126
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion"
126127
testImplementation "org.junit.platform:junit-platform-runner:$junitPlatformVersion"
127128
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion"
129+
testRuntimeOnly "org.junit.platform:junit-platform-commons:$junitPlatformVersion"
128130
}
129131

130132
tasks.withType(Test) {

examples/demo33/build.gradle

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ apply plugin:"com.github.erdi.webdriver-binaries"
1212

1313
webdriverBinaries {
1414
if (!System.getenv().containsKey('CI')) {
15-
chromedriver "$chromeDriverVersion"
1615
geckodriver "$geckodriverVersion"
16+
chromedriver "$chromeDriverVersion"
1717
}
1818
}
1919

@@ -45,17 +45,16 @@ dependencies {
4545
runtimeOnly "com.h2database:h2"
4646
runtimeOnly "org.apache.tomcat:tomcat-jdbc"
4747
runtimeOnly "com.bertramlabs.plugins:asset-pipeline-grails:$assetPipelineVersion"
48-
testImplementation "org.grails.plugins:geb"
49-
testRuntimeOnly "org.seleniumhq.selenium:htmlunit-driver:$seleniumHtmlunitVersion"
50-
testRuntimeOnly "net.sourceforge.htmlunit:htmlunit:$htmlunitVersion"
5148

5249
testImplementation project(':grails-web-testing-support')
5350
testImplementation project(':grails-gorm-testing-support')
5451

55-
testImplementation "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion"
56-
testImplementation "org.seleniumhq.selenium:selenium-api:$seleniumVersion"
57-
testImplementation "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
58-
testImplementation "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
52+
integrationTestImplementation "org.grails.plugins:geb"
53+
integrationTestRuntimeOnly "org.seleniumhq.selenium:selenium-remote-driver:$seleniumVersion"
54+
integrationTestRuntimeOnly "org.seleniumhq.selenium:selenium-api:$seleniumVersion"
55+
integrationTestRuntimeOnly "org.seleniumhq.selenium:selenium-support:$seleniumVersion"
56+
integrationTestRuntimeOnly "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion"
57+
integrationTestRuntimeOnly "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumVersion"
5958
}
6059

6160
bootRun {

examples/demo33/gradle.properties

Lines changed: 0 additions & 8 deletions
This file was deleted.

examples/demo33/src/integration-test/groovy/demo/DependencyInjectionSpec.groovy

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
package demo
22

33
import grails.testing.mixin.integration.Integration
4-
import grails.testing.spock.OnceBefore
54
import spock.lang.Specification
65

76
@Integration
87
class DependencyInjectionSpec extends Specification {
98

109
HelperService helperService
1110

12-
@OnceBefore
13-
void init() {
11+
def setup() {
1412
assert helperService != null
1513
}
1614

0 commit comments

Comments
 (0)