mcdc-project/mcdc
Establish comprehensive code coverage and Coveralls reporting
Ouverte
#489 ouverte le 25 juil. 2026
cihelp wantedtesting
Métriques du dépôt
- Stars
- (60 étoiles)
- Métriques de merge PR
- (Métriques PR en attente)
Description
Summary
Establish a reliable code-coverage workflow for MC/DC, improve meaningful test coverage, and integrate reporting with [Coveralls](https://coveralls.io/).
Current baseline
The merged unit-test report currently shows approximately:
- 53% line coverage
- 44% branch coverage
- 52% overall coverage as calculated by Coverage.py
Regression tests are not included.
The unit suite runs in both Python and Numba modes. Their coverage data must be handled carefully because separate reports can overwrite each other, while Python coverage tools do not fully observe Numba-compiled execution.
Work plan
- Establish the coverage workflow: Make coverage reproducible locally and in CI, with clear handling of multiple test modes and reports.
- Review coverage gaps: Identify important uncovered behavior and prioritize work based on risk and value rather than percentage alone.
- Improve tests: Add meaningful tests, strengthen existing tests, and create focused follow-up issues where useful.
- Review generated code: Determine whether uncovered generated code, including
code_factoryoutput, should be tested, excluded, or removed. - Evaluate broader coverage: Assess how regression, MPI, and compiled execution modes should contribute without producing duplicate or misleading results.
- Integrate Coveralls: Report coverage and coverage changes for pull requests and maintained branches, with an appropriate policy for preventing regressions.
- Document the approach: Explain how coverage is produced, merged, interpreted, and intentionally limited.
Acceptance criteria
- Coverage is reproducible locally and in CI.
- High-priority coverage gaps have been reviewed and meaningfully improved.
- Generated code and intentional exclusions are documented.
- The contribution of unit, regression, Python, Numba, and MPI execution is understood.
- Coveralls reports coverage and coverage changes.
- Contributors can find instructions for running and interpreting coverage.
- Remaining substantial work is tracked in follow-up issues.