test: tag Raincloud corpus tests @Tag("raincloud"), excluded by default#289
Merged
Conversation
A plain `./mvnw verify` silently ran the full real-world Raincloud corpus
whenever a developer had hydrated it locally (via hydrate-raincloud-corpus.sh):
the two Raincloud tests only gated real work behind
`assumeTrue(Files.exists(manifestPath()))`, which is a no-op skip on CI (corpus
never hydrated) but a surprise on a dev machine. In particular
RaincloudSizeComparisonIntegrationTest — documented as purely informational —
does a full Parquet->Vortex re-encode (FSST training, etc.) per slug, costing a
release preflight 15+ minutes of unexpected CPU-heavy work.
Make the exclusion explicit and controllable with JUnit 5 `@Tag`:
- Tag both classes `@Tag("raincloud")`.
- Failsafe `excludedGroups` (integration/pom.xml), bound to a new
`vortex.it.excludedGroups` property defaulting to `raincloud`, so a routine
build excludes them from test discovery entirely (stronger than assumeTrue's
skip) yet the CLI can opt back in.
Verified against a locally hydrated 10-slug corpus:
- `./mvnw verify -pl integration -am` no longer discovers/runs either class.
- Failsafe 3.5.6 applies `excludedGroups` even to an explicitly named
`-Dit.test=Raincloud...` class, and a literal pom value cannot be cleared
from the CLI — hence the property indirection. Opting in requires
`-Dvortex.it.excludedGroups=` in addition to `-Dit.test`. The full
conformance run (11 tests) passes end-to-end with that flag.
Updated the documented invocations to include the flag: CLAUDE.md Commands
section and the hydrate script's usage/output hints. No CHANGELOG entry:
test/tooling-only churn, no change to shipped artifacts.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
dfa1
force-pushed
the
test/tag-raincloud-integration-tests
branch
from
July 19, 2026 16:44
5262dc3 to
6fbdb1e
Compare
Owner
Author
|
Ran the `review` skill against this PR before merging. It found the pom.xml/CLAUDE.md/hydrate-script core mechanism correct, but caught a real bug: two call sites documenting the old (now-broken) invocation weren't updated, and both test classes' javadoc had a wrong property name plus a claim that directly contradicts the pom.xml comment added in the same diff. Fixed (amended into the PR commit):
Re-verified after fixing: plain `verify` still excludes both classes (294 tests, 0 failures, ~1min), and the corrected opt-in command (`-Dvortex.it.excludedGroups= -Dit.test=RaincloudConformanceIntegrationTest`) now actually runs the test (confirmed via the failsafe report: `Tests run: 1`). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
./mvnw verifysilently ran the full real-world Raincloud corpus whenever a developer had hydrated it locally: the two Raincloud tests only gated real work behindassumeTrue(Files.exists(manifestPath())), a no-op skip on CI but a surprise on a dev machine.RaincloudSizeComparisonIntegrationTestin particular does a full Parquet→Vortex re-encode (FSST training, etc.) per slug, costing a release preflight 15+ minutes of unexpected work.@Tag("raincloud"); FailsafeexcludedGroups(bound to a newvortex.it.excludedGroupsproperty, defaultraincloud) excludes them from test discovery entirely — stronger thanassumeTrue's runtime skip.excludedGroupseven to an explicitly named-Dit.test=Raincloud...class, and a literal pom value can't be cleared from the CLI — hence the property indirection. Opting in requires-Dvortex.it.excludedGroups=in addition to-Dit.test. Documented in CLAUDE.md and the hydrate script's usage/output hints.Test plan
main(post-0.12.3 release + dependabot bumps + ParquetImporter fix) and re-verified after rebase./mvnw verify -pl integration -am(corpus hydrated locally): neither Raincloud class discovered/run; 294 tests, 0 failures, ~1:25 total (previously 20+ min)-Dvortex.it.excludedGroups= -Dit.test=RaincloudConformanceIntegrationTest): full conformance run passes end-to-end against the real corpus./mvnw test -pl integration -am: no regressions🤖 Generated with Claude Code