pytest-coverage
运行pytest并生成覆盖率报告,以识别和消除未测试的代码行。在cov_annotate/目录中生成带注释的源文件,使用!标记指示未覆盖的行。支持通过--cov=module_name进行模块特定的覆盖率检查,以及在特定测试文件上运行目标测试。工作流程:运行覆盖率检查,审查带注释的文件以查找未覆盖的行,编写测试以覆盖缺口,重复此过程直至达到100%覆盖率。
npx skills add https://github.com/github/awesome-copilot --skill pytest-coverageThe 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.