Test Profiles
AINL now defines explicit test profiles so default CI/local runs stay stable while integration checks remain available.
Test Profiles
AINL now defines explicit test profiles so default CI/local runs stay stable while integration checks remain available.
Profiles
core(default): fast and stable suite (no emits/lsp integration tests).emits: parse/syntax checks over emitted Python artifacts intests/emits.lsp: language server smoke script (scripts/test_lsp.py).integration: emits + lsp.full: core + integration.docs: docs contract consistency checks (cross-links, stale phrasing, required coupling).
Commands
Using the script entrypoint:
.venv/bin/python scripts/run_test_profiles.py --profile core
.venv/bin/python scripts/run_test_profiles.py --profile emits
.venv/bin/python scripts/run_test_profiles.py --profile lsp
.venv/bin/python scripts/run_test_profiles.py --profile integration
.venv/bin/python scripts/run_test_profiles.py --profile full
.venv/bin/python scripts/run_test_profiles.py --profile docs
Equivalent Python invocation:
.venv/bin/python scripts/run_test_profiles.py --profile core
Direct docs guard command:
ainl-check-docs
# or
python scripts/check_docs_contracts.py --scope all
Optional pre-commit guard:
pre-commit install
pre-commit run --all-files
CI policy
- Pull requests / pushes run the
coreprofile on a cross-platform matrix. - Nightly and manual dispatch run the
fullprofile on Ubuntu.
This keeps day-to-day CI fast and stable while still exercising integration paths regularly.
Pytest defaults
pyproject.toml now configures pytest to:
- collect from
tests/ - skip recursion into
tests/emitsandscriptsby default - run with marker expression:
not integration and not emits and not lsp
This prevents invalid module-name artifacts (e.g. test_rag.api.py) and script-style files from breaking default collection, while preserving explicit integration checks through profiles.
