Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 1.28 KB

coverage.md

File metadata and controls

29 lines (19 loc) · 1.28 KB

Coverage

利用 coverage.py 评估测试的覆盖范围。(包括 python 代码和 Django 模板)

$ poetry install --with coverage
# 请在项目根目录运行

$ poetry run coverage run
$ poetry run coverage html
# 然后单击 htmlcov/index.html 链接

为何没加入justfile

运行 Django 项目序号manage.py所在目录在sys.path上。coverage run会向sys.path加入manage.py所在目录,而python -m coverage run会加入当前目录。这种区别导致后者无法正常运行。

Note

这与虚拟环境是否启用无关——./.venv/Scripts/coverage.exe./.venv/Scripts/python.exe -m coverage同样符合上述描述。

如果要加入justfile,最好保证未启用虚拟环境也能正常工作。然而无虚拟环境时,coverage并不在$PATH上,只有{{ python }} -m coverage能可靠一致地被调用——sys.path$PATH难以兼顾。

Mypy 提供了mypy_path配置 import discovery,可解决sys.path的问题,从而{{ python }} -m mypy即可。很不幸 coverage.py 似乎没有类似机制。

考虑到无需一直关注测试覆盖范围,就不加入justfile了。