Automated Test Coverage & Commit Status Checks
Set up a GitHub Actions workflow to run tests, generate a full coverage report, upload it, and mark each commit with a coverage status check.
GitHub Actions Workflow
Add the following job to your .github/workflows/…yaml
. It triggers on pushes to the mentioned branch in the yaml file:
Don’t forget to add your access token to the repo secrets under the name “ACCESS_TOKEN”. The access token should have access to the repo.
Coverage config file
You have to create a .coveragerc file in the project’s root folder to include all the source files in the test coverage calculation.
Example:
When you assign source to ”.” , It checks for every python file in the root folder and its sub directories. You can omit some directories by placing them in the omit section of the file.
How it works
With the above configuration:
- coverage run -m pytest tests/ will count every .py under the workspace as “valid” lines except for those in the omitted directories.
- Lines actually executed by your tests are marked “covered.”
- coverage xml -o coverage.xml produces a Cobertura-style report reflecting true coverage over the entire codebase.
- Using this coverage xml, we calculate the coverage percentage and the status check will be done on every new push to the branch.