James Fredley
03/31/2026, 9:19 PMjdaugherty
03/31/2026, 9:27 PM@Integration in 7, but there were historically - maybe they were updating tests that should have been updated previously for their Grails 6 upgrade?user
03/31/2026, 9:36 PM@Integration story for real integration tests. Tests under src/integration-test that are meant to boot the app still use `@Integration`; that part stayed the same in intent.
What did show up in our diff was mostly:
1. Wrong mix of annotations ā Several specs in src/test had @Integration and unit traits like ServiceUnitTest. Thatās an invalid combination for Grailsā testing model and started failing with IllegalStateException during setup on Grails 7. The fix was to drop @Integration from those and keep them as proper unit tests. So those werenāt āGrails 7 changed `@Integration`ā; they were tests that were already misclassified.
2. Groovy 4, not Grails 7 ā One legacy integration-style class still extends GroovyTestCase, which Groovy 4 removed. We kept @Integration / @Rollback / @Test and removed the base class. Thatās a Groovy upgrade constraint, not an @Integration redesign.
3. Broader test modernization ā A lot of churn was moving from older patterns (HibernateSpec, wrong traits, etc.) to the current ServiceUnitTest / DataTest guidance. Thatās aligned with Grails 6+ testing, but we only had to finish the job when everything was upgraded together (Grails 7 + Groovy 4 + Spring Boot 3 stack).
So yes: some of this could have been cleaned up earlier on Grails 6 if weād already enforced strict separation (unit vs integration) and modern traits. Grails 7 made the bad combinations fail loudly and Groovy 4 forced a few legacy bases off; the @Integration annotation itself for real integration tests wasnāt the main story.jdaugherty
04/01/2026, 12:20 AMJames Fredley
04/01/2026, 10:13 PMJames Fredley
04/02/2026, 7:40 PMpablo.pazos
04/08/2026, 7:51 PM