************************************************ coveragepy(测试覆盖) ************************************************ 常用命令,在测试代码目录下执行 * ``coverage run -m unittest discover`` '跑覆盖率 * ``coverage report -m`` '获取结果 * ``coverage html`` '覆盖率结果生成html文件 代码忽略覆盖检测 ======================================================= 第一种方法 注释法:: function() # pragma: no cover 此行代码将不参与覆盖率检测 第二种方法 修改配置文件 `.coveragerc` 的omit参数,参考自 https://coverage.readthedocs.io/en/latest/source.html#execution issue ========================================================= #1350 -------- `Option to excluded no-context lines from total calculation `_ 留意后续 #1384 -------- `Show / hide fully covered files in HTML report `_ 这个issue在等待贡献。需要懂前端知识,加一个复选框按钮,显示/隐藏覆盖率100%的文件 **TODO** 浏览跟html有关的源码 通过单元测试文件( ``test_html.py`` )和debug,可以知道html跟以下文件代码有关 ``coverage/control.py::Coverage::html_report`` html通过模板生成,没有用Jinja2, 而是coverage自己实现了一个Template类,跟Django模板语法类似,是Django模板系统的子集。 回到issue, 如果要贡献代码,修改 ``htmlfiles/index.html文件`` , 在 ``htmlfiles/coverage_html.js`` 增加js代码。 至于实现,可以参考pytest_html的代码 带问题读源码 ========================================================= 命令行工具coverage对应的源码文件 --------------------------------------------------------- ``cmdline.py`` 。 通过optparse库实现,该库已被弃用并且将不再继续开发;开发将转至argparse模块进行。