我正在使用
coverage
检查我的测试套件覆盖了多少代码。
当我运行完整的测试套件时,它似乎没有运行一些测试,但如果我只运行一个应用程序,它就会运行。
例如,
coverage run manage.py test
后跟 covereage html
显示 api
应用程序的覆盖率为 24%。但是当我运行 coverage run manage.py test api
然后运行 coverage html
时,我得到了 100% 的覆盖。
为什么会出现这种情况?
编辑
@CoffeeBasedLifeForm 已发现该问题。 Discovery 没有找到测试。
测试在
api>tests>test_views>filename.py
测试目录中是
__init__.py
,其中包含from .test_views import *
test_views
目录还有一个__init__.py
包含:
from .administration_api import AdministrationAPIViewTest # noqa
from .source_api import EventAPIViewTest, SourceAPIViewTest # noqa
from .study_api import StudyAPIViewTest # noqa
此结构正在其他应用程序上进行测试。
api
也在 INSTALLED_APPS
中指定。
我不明白为什么这些测试没有被发现。
我最终将测试移动到另一个正在加载的应用程序。无法用其他方法解决。
令人沮丧,因为这会让将来的另一个程序员感到困惑