Files
2026-05-26 21:45:54 +01:00

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 success
  • COVERAGE FAILED: <pct>% < 97.0% threshold on failure