2.7 KiB
2.7 KiB
Quality Automation
This project uses nox to orchestrate every quality
gate: formatting, linting, type checking, BDD tests, integration tests,
coverage, security scanning, dead-code detection, complexity analysis,
benchmarks, regression checks, and documentation. There is intentionally no
pytest — all tests are expressed as BDD scenarios.
Sessions
| Session | Command | Description |
|---|---|---|
format |
nox -s format |
Auto-format with ruff (use -- --check for a non-mutating check) |
lint |
nox -s lint |
Lint with ruff |
typecheck |
nox -s typecheck |
Strict type check with pyright |
unit_tests |
nox -s unit_tests |
Behave BDD unit tests (parallel) |
integration_tests |
nox -s integration_tests |
Robot Framework integration tests (parallel via pabot, excludes e2e tag) |
e2e_tests |
nox -s e2e_tests |
Robot Framework end-to-end tests (only the e2e tag) |
coverage_report |
nox -s coverage_report |
Coverage report from Behave wrapped in slipcover (fail under 97%) |
security_scan |
nox -s security_scan |
Bandit + Semgrep security scans |
dead_code |
nox -s dead_code |
Vulture dead-code detection |
complexity |
nox -s complexity |
Radon cyclomatic complexity + maintainability |
benchmark |
nox -s benchmark |
ASV performance benchmarks |
benchmark_regression |
nox -s benchmark_regression |
ASV continuous compare HEAD vs base (PRs) |
docs |
nox -s docs |
Build MkDocs site |
serve_docs |
nox -s serve_docs |
Serve docs locally on 0.0.0.0:8000 |
build |
nox -s build |
Build wheel distribution |
pre_commit |
nox -s pre_commit |
Run all pre-commit hooks against all files |
Running Everything
nox
This executes the default sessions (format, lint, typecheck,
unit_tests). For the full pre-merge gate run the individual
sessions listed above — they mirror what CI runs.
Coverage Threshold
Coverage is collected by wrapping Behave with slipcover. The merge gate is 97 %. The session emits a single-line CI summary:
COVERAGE OK: <pct>% (threshold: 97.0%)on successCOVERAGE FAILED: <pct>% < 97.0% thresholdon failure