|
|
||
|---|---|---|
| .. | ||
| lang | ||
| srt | ||
| README.md | ||
| pytest.ini | ||
README.md
Run Unit Tests
SGLang uses the built-in library unittest as the testing framework.
Test Backend Runtime
cd sglang/test/srt
# Run a single file
python3 test_srt_endpoint.py
# Run a single test
python3 -m unittest test_srt_endpoint.TestSRTEndpoint.test_simple_decode
# Run a suite with multiple files
python3 run_suite.py --suite per-commit
Test Frontend Language
cd sglang/test/lang
export OPENAI_API_KEY=sk-*****
# Run a single file
python3 test_openai_backend.py
# Run a single test
python3 -m unittest test_openai_backend.TestOpenAIServer.test_few_shot_qa
# Run a suite with multiple files
python3 run_suite.py --suite per-commit
Adding or Updating Tests in CI
- Create new test files under
test/srtortest/langdepending on the type of test. - Ensure they are referenced in the respective
run_suite.py(e.g.,test/srt/run_suite.pyortest/lang/run_suite.py) so they’re picked up in CI. For most small test cases, they can be added to theper-commitsuite. - The CI will run the
per-commitandnightlyautomatically. If you need special setup or custom test groups, you may modify the workflows in.github/workflows/.
Writing Elegant Test Cases
- Examine existing tests in sglang/test for practical examples.
- Keep each test function focused on a single scenario or piece of functionality.
- Give tests descriptive names reflecting their purpose.
- Use robust assertions (e.g., assert, unittest methods) to validate outcomes.
- Clean up resources to avoid side effects and preserve test independence.