Files
cleveragents-core/features/coverage_threshold_enforcement.feature
T
brent.edwards 35c74d1a52
CI / lint (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 26s
CI / security (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 4m12s
CI / build (pull_request) Successful in 15s
CI / unit_tests (pull_request) Successful in 7m46s
CI / coverage (pull_request) Failing after 5m23s
CI / docker (pull_request) Successful in 8s
feat(qa): enforce coverage >=97% in CI
2026-02-13 18:54:15 +00:00

60 lines
2.6 KiB
Gherkin

Feature: Coverage threshold enforcement
The project enforces a minimum 97% code coverage threshold.
This feature validates that the coverage configuration and nox session
are properly set up to enforce this requirement.
Scenario: Coverage threshold is configured at 97% in noxfile
Given the noxfile.py exists
When I parse the COVERAGE_THRESHOLD constant from noxfile.py
Then the coverage threshold should be 97
Scenario: Coverage report session uses fail-under flag
Given the noxfile.py exists
When I read the coverage_report session source from noxfile.py
Then the session should contain a fail-under argument matching the threshold
Scenario: Coverage run configuration has branch coverage enabled
Given the pyproject.toml exists
When I parse the coverage run configuration from pyproject.toml
Then branch coverage should be enabled
Scenario: Coverage run configuration measures src directory
Given the pyproject.toml exists
When I parse the coverage run configuration from pyproject.toml
Then the source list should include "src"
Scenario: Coverage data file is stored under build directory
Given the pyproject.toml exists
When I parse the coverage run configuration from pyproject.toml
Then the data file should be under the build directory
Scenario: Coverage HTML report directory is under build
Given the pyproject.toml exists
When I parse the coverage html configuration from pyproject.toml
Then the html directory should be under the build directory
Scenario: Coverage XML report path is under build
Given the pyproject.toml exists
When I parse the coverage xml configuration from pyproject.toml
Then the xml output should be under the build directory
Scenario: CI workflow coverage job references nox session
Given the CI workflow file exists
When I parse the coverage job from the CI workflow
Then the coverage job should run nox -s coverage_report
Scenario: CI workflow coverage job depends on lint and typecheck
Given the CI workflow file exists
When I parse the coverage job from the CI workflow
Then the coverage job should depend on lint and typecheck
Scenario: Coverage report session emits CI-parseable summary on success
Given the noxfile.py exists
When I read the coverage_report session source from noxfile.py
Then the session should emit a COVERAGE OK summary line
Scenario: Coverage report session emits CI-parseable summary on failure
Given the noxfile.py exists
When I read the coverage_report session source from noxfile.py
Then the session should emit a COVERAGE FAILED summary line