About pytest-coverage
A skill that uses pytest coverage reports to find untested source lines and guide adding tests until line coverage is complete. It is intended for developers checking coverage by project or module.
Key features
- 01Generate annotated coverage reports
- 02Target a module or test file
- 03Locate uncovered source lines
- 04Repeat tests until coverage is complete
Use cases
- 01Finding untested lines in a project
- 02Checking coverage for one module
- 03Adding tests for uncovered code
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ github/ awesome-copilot --skill pytest-coverageAfter installing, type/pytest-coveragein Claude Code to confirm it loaded.
Details
From the project READMEThe goal is for the tests to cover all lines of code.
Generate a coverage report with:
pytest --cov --cov-report=annotate:cov_annotate
If you are checking for coverage of a specific module, you can specify it like this:
pytest --cov=your_module_name --cov-report=annotate:cov_annotate
You can also specify specific tests to run, for example:
pytest tests/test_your_module.py --cov=your_module_name --cov-report=annotate:cov_annotate
Open the cov_annotate directory to view the annotated source code. There will be one file per source file. If a file has 100% source coverage, it means all lines are covered by tests, so you do not need to open the file.
For each file that has less than 100% test coverage, find the matching file in cov_annotate and review the file.
If a line starts with a ! (exclamation mark), it means that the line is not covered by tests. Add tests to cover the missing lines.
Keep running the tests and improving coverage until all lines are covered.