如何在使用coverage.py时排除South迁移的覆盖率报告
我在使用 coverage.py 来检查我的 Django 应用的测试覆盖率。不过,由于我使用 South 来进行数据库迁移,所有这些迁移文件的覆盖率都显示为 0%,这让整体的覆盖率看起来很糟糕。
我已经尝试在 run
和 report
中使用 --omit=*migrations*
,但是没有效果。
我还尝试了 3.4 版本和截至 2010 年 12 月 20 日的 Bitbucket 最新版本,结果还是一样。
有没有什么办法可以让 coverage.py 忽略这些迁移文件夹呢?
6 个回答
2
最新版本的 django-jenkins 增加了一个新选项 COVERAGE_WITH_MIGRATIONS,这个选项可以让你在计算代码覆盖率时排除迁移文件。现在这个版本还没有在PyPI上发布,所以你需要通过pip或easy_install来安装,并指定这个项目的Git地址作为来源。
27
你可以通过匹配迁移目录来排除那些文件。你试过给参数加上引号吗?根据你的操作系统和命令行工具,可能会提前处理那些星号。你可以这样试试:
--omit='*migrations*'
另外,你也可以把这个开关放到一个 .coveragerc 文件里:
[run]
omit = *migrations*
29
解决方案是:
[run]
omit = ../*migrations*