coverage.py 不支持相对导入吗?
我正在收集我这个Django应用的代码覆盖率,发现coverage.py
在模块是相对导入的时候,似乎不会收集统计数据。
更详细一点:
我的文件夹结构是这样的:
project
__init__.py
apps
__init__.py
my_app
__init__.py
my_module.py
tests.py
所以如果我在tests.py
里写from .my_module import *
,那么coverage.py
就不会收集my_module.py
的统计数据。不过,如果我写from apps.my_app.my_module import *
,那么统计数据就会出现。
我在使用带有coverage
插件的django-nose,并且在运行测试时加上了--cover-package=apps.my_app
这个标志。
有没有人遇到过这种情况?我不太想每次都写完整的导入路径,除非真的必须这样,所以任何想法都很欢迎。
1 个回答
0
我对django-nose不太了解,不过为了处理一个类似的问题,我在没有使用Django的情况下,安装了pytest和pytest-cov这两个包,然后做了类似下面的操作:
py.test --cov app
这样就能显示测试覆盖率了。