Repository navigation
Reduce integration test CI time: fewer restarts, one shared database - #2620
Merged
Merged
Conversation
Contributor
➡️ Unit Test Coverage Delta vs Main Branch
|
Contributor
Unit Test Coverage Report
|
Contributor
➡️ Integration Test Coverage Delta vs Main Branch (hcd-it)
|
Contributor
Integration Test Coverage Report (hcd-it)
|
Contributor
📉 Integration Test Coverage Delta vs Main Branch (dse69-it)
|
Contributor
Integration Test Coverage Report (dse69-it)
|
erichare
reviewed
Oct 7, 2026
erichare
approved these changes
Oct 7, 2026
erichare
left a comment
Contributor
There was a problem hiding this comment.
LGTM @Hazel-Datastax ! I left one comment about how we handle the drop keyspaces, but otherwise this looks good and seems to be a huge improvement
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.
What this PR does:
This PR decreases the time of the integration test jobs. It makes fewer restarts, and most restarts keep the database container. It changes only test code and
pom.xml.Changes
1. Class order:
TestResourceGroupingClassOrdererClassOrderersorts the integration test classes:DseTestResource.pom.xmlsets the orderer withquarkus.test.class-ordererin the failsafe configuration. Surefire (unit tests) does not use it.QuarkusTestProfileAwareClassOrderercalls this orderer first and keeps its order for integration tests.2. Shared database container:
StargateTestResourcestop()does not stop the shared container. Testcontainers removes it when the JVM stops.needsDedicatedContainer()to get a container of its own. These test classes use this:CreateCollectionTooManyIndexesIntegrationTestandCreateCollectionTooManyTablesIntegrationTest. Their limits count all collections and indexes in the database.SessionEvictionIntegrationTest. The test stops and starts the database container.containerNetworkIdis set), the behavior does not change. Each start of the app gets a new network, so the resource starts a new database container each time. CI does not use this mode.Results
mainafter test: cover successful findAndRerank through the Nvidia HTTP client #2605 (run 37555686049). It has the same tests as this PR.hcd-itbeforehcd-itafterdse69-itbeforedse69-itafterhcd-itis 8.7 min faster (−26%).dse69-itis 5.4 min faster (−18%).main,hcd-itdecreased from 32.8 to 24.4 min (−26%), anddse69-itfrom 27.6 to 24.8 min (−10%). 19 of these 20 runs are before test: cover successful findAndRerank through the Nvidia HTTP client #2605. They have fewer tests and only 12 starts.main,hcd-ittook 30.1–39.7 min in the last 20 runs. The number of starts and the restart times are more stable.How to check
In the log of an integration test job:
Started a new database containeroccurs 4 times.Reusing the shared database containeroccurs 6 times.DseTestResourcerun first. The 9 other classes run after them.Which issue(s) this PR fixes:
Fixes #2621
Checklist