Execute test classes concurrently#111
Merged
Merged
Conversation
505e885 to
0a674c5
Compare
0a674c5 to
1e0480b
Compare
tmccombs
reviewed
May 21, 2026
tmccombs
reviewed
May 21, 2026
blainefreestone
approved these changes
May 21, 2026
blainefreestone
left a comment
There was a problem hiding this comment.
Just a couple small verifications for testing and concurrency stuff and then should be good to go.
tmccombs
reviewed
May 22, 2026
1e0480b to
8a0c1b2
Compare
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.
This PR updates the test runner to execute test classes (formally referred to as tasks in the context of the SBT test interface) concurrently. Most test frameworks will already execute individual test cases concurrently, but it's up to the test runner to execute whole test classes at the same time.
SBT already does this by default, so I think it's reasonable to expect that Bazel should do this via
rules_scala. However, if this isn't desired because a test depends on sequential execution (e.g. because it relies on some global state), one can setsequential = Trueon thescala_testtarget to disable this feature.One consequence of this change is that we don't print a summary for each test class until after it's finished executing, but I figured this shouldn't be too big of an issue as Bazel buffers test output by default anyway.