30

我使用coverage.py 来检查我的django 应用程序的测试覆盖率。但是,由于我使用 South 进行数据库迁移,所有这些文件都显示为 0% 并弄乱了总体百分比。

我已经尝试--omit=*migrations*在两者runreport(和两者)中使用,但这没有用。

截至 2010 年 12 月 20 日,我尝试了来自 Bitbucket 的 3.4 版和最新版本,结果相同。

有什么想法可以让coverage.py真正忽略迁移文件夹吗?

4

6 回答 6

28

解决方案是:

[run]
omit = ../*migrations*
于 2010-12-23T10:32:53.560 回答
26

您应该能够匹配迁移目录以省略这些文件。您是否尝试过引用该论点?根据您的操作系统和外壳,它可能会过早地扩展这些星号。试试这样:

--omit='*migrations*'

或者,您可以将开关放入 .coveragerc 文件中:

[run]
omit = *migrations*
于 2010-12-22T03:23:47.500 回答
2

最新版本的django-jenkins有新选项COVERAGE_WITH_MIGRATIONS可以排除迁移。它还没有在 PyPI 中,所以你需要使用 pip/easy_install 指定 url git url 作为源来安装它。

于 2012-12-03T06:47:47.720 回答
1

您是否尝试过django_coverage。我认为它可以解决此类问题。

于 2010-12-21T21:37:41.723 回答
0

这对我有用:

coverage run --source='.' --omit='*/migrations/*.py' manage.py test
于 2017-11-02T23:23:28.193 回答
-3

尝试:

coverage run --source=. manage.py test app_name

这会忽略第三方代码并修复您的 % 问题

于 2014-10-31T00:34:38.727 回答