[MNT] Diagnose and address long test runtimes (#1633)#1692
Open
Abhishek9639 wants to merge 1 commit intoopenml:mainfrom
Open
[MNT] Diagnose and address long test runtimes (#1633)#1692Abhishek9639 wants to merge 1 commit intoopenml:mainfrom
Abhishek9639 wants to merge 1 commit intoopenml:mainfrom
Conversation
- Add global per-test timeout (600s) to pytest config - CI: report all test durations (--durations=0) for diagnosis - CI: add explicit --timeout=600 to prevent hanging tests - Optimize verify_cache_state fixture: scope function -> module - Add scripts/profile_tests.sh for local duration profiling
Author
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.
Fixes #1633
Changes
Current CI test runs take 1–2+ hours. This PR diagnoses the bottleneck and implements several improvements:
Root Cause
The
production_servertests (74 tests) make live API calls to openml.org, taking ~1h 23m in CI even with 4-worker parallelization.Improvements
Global per-test timeout (
pyproject.toml)timeout = 600(10 min) to[tool.pytest.ini_options]CI workflow improvements (
.github/workflows/test.yml)--durations=20→--durations=0to report ALL test durations for diagnosis--timeout=600to all 3 pytest invocationsFixture optimization (
tests/conftest.py)verify_cache_statefixture scope fromfunction→moduleBenchmark script (
scripts/profile_tests.sh)Test Distribution Analysis
production_servertest_serversklearn-onlyVerification