Speed Up Server Tests By Parallelizing Them - #762
Merged
Conversation
…pytest-xdist library, which improved the performance of running the whole test suite on a 16-core machine from 236.81s (original) to 101.66s (fully parallelized), a 57% reduction in total run time. The changes were implemented by adding pytest-xdist to dev-requirements.txt and the server's Dockerfile. Only one test file required changes to support parallelization - test_user_tokens.py. It incompatible with being run in parallel due to its use of dynamic time-based test parameters. The dynamicism wasn't actually improving test coverage at all, so I replaced it with static test parameters. Other small improvements: * Added in a helper script, run-server-tests.sh, to make it easy to run the tests in Docker. The script builds only the Docker layers required for testing, spins up the new image, and then executes the testing command in the docker container. It also supports running the tests in serial, as well as passing in specific test paths and only testing those tests. * Updated the Dockerfile to fix Docker warnings when building about inconsistent casings in the various FROM X AS Y statements.
rr-
approved these changes
Jan 7, 2026
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.
Enabled running python server tests in parallel by using the standard pytest-xdist library, which improved the performance of running the whole test suite on a 16-core machine from 236.81s (original) to 101.66s (fully parallelized), a 57% reduction in total run time.
The changes were implemented by adding pytest-xdist to dev-requirements.txt and the server's Dockerfile.
Only one test file required changes to support parallelization - test_user_tokens.py. It incompatible with being run in parallel due to its use of dynamic time-based test parameters. The dynamicism wasn't actually improving test coverage at all, so I replaced it with static test parameters.
Other small improvements:
Addresses Issue #761