首页 > 解决方案 > 如何从覆盖范围中排除 django 库

问题描述

学习 django 作为使用 TDD 方法开发应用程序的一部分,在浏览了许多互联网页面后,我选择了 unittest 进行测试和覆盖库以了解所涵盖的测试。问题是在执行覆盖运行并生成 html 报告之后,它创建了一个 htmlcov 文件夹,我看到它也包含所有 django 库的测试覆盖率。这让我无法查看文件夹并搜索我的应用程序结果的测试结果。

我已经按照文档安装了覆盖范围

$ pip install coverage

并执行此命令$ coverage run manage.py test -v 2 然后生成 html 报告$ coverage html,生成 423 项 html 页面

我如何克服这个问题,我可以看到使用 pytest 生成漂亮报告的在线教程,但是在使用 unittest 和覆盖率时这是不可能的..

也尝试了以下选项..

2)

$ coverage run -m unittest discover && coverage report
$ coverage html

3)

$ coverage run manage.py unittest feed, users
$ coverage html

同样的结果,我怎样才能获得只包含我的项目和它的应用程序文件(模型、视图、表单等)的所需文件

标签: djangocode-coveragedjango-testingcoverage.py

解决方案


我得到了问题的答案,从 stackoverflow 中找到了答案参考,并将其用作许多其他用户提到的参考

[run] omigrations / 这让我很困惑,所以尝试了下面的命令并且它有效(,)应该用于分隔多个目录

$ coverage run --omit=*/venv/*,*/migrations/* manage.py test

这是我的命令的结果:

$ coverage report -m
Name                Stmts   Miss  Cover   Missing
-------------------------------------------------
feed/__init__.py        0      0   100%
feed/admin.py           1      0   100%
feed/apps.py            3      0   100%
feed/models.py         10      2    80%   6-7
feed/tests.py          11      1    91%   18
feed/urls.py            3      0   100%
feed/views.py           6      2    67%   7-8
manage.py              12      2    83%   11-12
snet7/__init__.py       0      0   100%
snet7/settings.py      19      0   100%
snet7/urls.py           4      0   100%
users/__init__.py       0      0   100%
users/admin.py          1      0   100%
users/apps.py           3      0   100%
users/forms.py          7      0   100%
users/managers.py      20      1    95%   29
users/models.py        13      1    92%   19
users/tests.py         33      4    88%   19-20, 44-45
users/views.py          6      0   100%
-------------------------------------------------
TOTAL                 152     13    91%

推荐阅读