Code coverage
Roboticks ingests code coverage (gcov/lcov for C++,coverage.py for Python) alongside JUnit XML and displays it in the test-run detail UI. Coverage is one of the headline numbers on every Check Run, but it answers a different question than requirement coverage.
What we ingest
The runner auto-discovers files named
coverage.xml, coverage.info, or cobertura.xml in the workspace after tests complete and uploads them.
Python coverage
Addpytest-cov to your dev dependencies:
--cov:
coverage.xml and ships it. Locally, the same file works for any coverage UI.
C++ coverage (colcon)
Coverage in a colcon workspace is a two-step dance: build with coverage flags, then capture aftercolcon test.
In CI
GitHub Actions step that produces both pytest and gtest coverage:Where coverage surfaces
Coverage gates
Configure a coverage floor inroboticks.yaml:
Coverage is not enough
A 95% line coverage number with 40% requirement coverage means “we run a lot of code, but we have not proven the requirements”. An auditor will accept the latter and ignore the former. Use coverage to find dead code; use requirement coverage to ship.Next
Requirement coverage
The dimension that pays the audit bill.
CI recipes
Wire coverage capture into GitHub Actions, Jenkins, CircleCI, BuildKite.
Check Runs
The PR-side surface for both coverage numbers.
Matrix UI
How coverage joins requirements visually.