Django 覆盖率测试似乎没有运行所有应用程序测试

问题描述 投票:0回答:1

我正在使用

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
中指定。

我不明白为什么这些测试没有被发现。

django testing code-coverage
1个回答
0
投票

我最终将测试移动到另一个正在加载的应用程序。无法用其他方法解决。

令人沮丧,因为这会让将来的另一个程序员感到困惑

© www.soinside.com 2019 - 2024. All rights reserved.