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.