Testing¶
This repository contains a large and diverse test suite. To keep iteration fast, tests are split into fast PR tests and slow/advanced tests. Contributors should generally run only the fast tests locally unless reproducing a specific failure.
Test Tiers¶
1. Fast / PR Tests¶
Runs on: Every push to
main, pull requests, and merge queue.Runtime: ~20 minutes total
Purpose: Ensure code correctness for PRs without running the heaviest tests.
Includes:
Linting, pre-commit, type checks (2 min)
Tag setup and HuggingFace datasets cache pull (2 min)
Docker image build (5 min)
UV install dependency tests (1 min)
CPU tests excluding slow/external tests (3 min)
CPU slow tests (3–4 min)
Formatter hash tests (3 min)
GPU tests / optional extras (12 min)
Recommended local command: For most contributors, running the CPU fast tests is sufficient:
# Run the tests that PR CI runs
uv run --all-extras pytest -n auto --max-worker-restart=0 -v \
-m "not gpu and not cpu_slow and not external_api and not formatter_hash"
2. Advanced / GPU Tests¶
Runs on: PR workflow (
test-docker-gpu)Runtime: ~12 min
Purpose: Run GPU tests or all optional extras together. Typically only required if debugging GPU-specific issues.
Includes:
GPU tests excluding CPU-slow / external API / vllm (12 min)
Optional extras (
vllm,mistral) installations
Recommended local command (advanced users):
uv run --exact --all-extras pytest -v --noconftest tests/tests_eval_framework/installs/
⚠️ Warning: Running GPU/full extras locally may take significant time and requires a GPU.
CI as Source of Truth¶
The authoritative definition of which tests belong to each tier is encoded in the GitHub workflows:
tests.yml→ PR tests, CPU and GPU tests, linting
Tips for Contributors¶
Run fast PR tests before pushing code.
Do not attempt to run the full suite unless reproducing a CI failure.
CI automatically runs GPU and slow tests on PRs.