我使用coverage.py 来检查我的django 应用程序的测试覆盖率。但是,由于我使用 South 进行数据库迁移,所有这些文件都显示为 0% 并弄乱了总体百分比。
我已经尝试--omit=*migrations*
在两者run
和report
(和两者)中使用,但这没有用。
截至 2010 年 12 月 20 日,我尝试了来自 Bitbucket 的 3.4 版和最新版本,结果相同。
有什么想法可以让coverage.py真正忽略迁移文件夹吗?
我使用coverage.py 来检查我的django 应用程序的测试覆盖率。但是,由于我使用 South 进行数据库迁移,所有这些文件都显示为 0% 并弄乱了总体百分比。
我已经尝试--omit=*migrations*
在两者run
和report
(和两者)中使用,但这没有用。
截至 2010 年 12 月 20 日,我尝试了来自 Bitbucket 的 3.4 版和最新版本,结果相同。
有什么想法可以让coverage.py真正忽略迁移文件夹吗?
解决方案是:
[run]
omit = ../*migrations*
您应该能够匹配迁移目录以省略这些文件。您是否尝试过引用该论点?根据您的操作系统和外壳,它可能会过早地扩展这些星号。试试这样:
--omit='*migrations*'
或者,您可以将开关放入 .coveragerc 文件中:
[run]
omit = *migrations*
最新版本的django-jenkins有新选项COVERAGE_WITH_MIGRATIONS可以排除迁移。它还没有在 PyPI 中,所以你需要使用 pip/easy_install 指定 url git url 作为源来安装它。
您是否尝试过django_coverage。我认为它可以解决此类问题。
这对我有用:
coverage run --source='.' --omit='*/migrations/*.py' manage.py test
尝试:
coverage run --source=. manage.py test app_name
这会忽略第三方代码并修复您的 % 问题