Django测试用例被忽略求助:全量测试无结果
Django全量测试找不到用例的排查方案
1. 优先修复代码缩进问题
你的测试代码中setUp方法内的self.data缩进不统一,Python对缩进严格敏感,这会导致语法错误,Django在全量扫描测试时可能因语法错误跳过该测试类。修正后的代码如下:
from django.test import TestCase from django.contrib.auth import get_user_model class UserManagerTestCase(TestCase): def setUp(self): self.data = { "user": { "email": "normal@user.com", "password": "foo", "first_name": "Joe", "last_name": "Doe" } } def test_create_user(self): User = get_user_model() user = User.objects.create_user(**self.data['user']) self.assertEquals(user.email, self.data['user']['email']) self.assertEquals(user.first_name, self.data['user']['first_name']) self.assertEquals(user.last_name, self.data['user']['last_name']) self.assertTrue(user.is_active)
2. 检查INSTALLED_APPS配置
运行全量test命令时,Django只会扫描settings.py中INSTALLED_APPS列表内的应用。如果你的project应用未添加到该列表,全量测试就不会发现它的测试用例。打开project/settings.py,确认INSTALLED_APPS包含目标应用:
INSTALLED_APPS = [ # 其他默认应用 'project', # 确保该行存在 ]
3. 确认项目结构与测试发现规则
Django默认测试发现逻辑:
- 扫描每个INSTALLED_APPS下的
tests.py文件 - 扫描每个INSTALLED_APPS下
tests目录中以test_开头的文件(需包含__init__.py)
若你的项目结构为:
project/ manage.py project/ __init__.py settings.py tests.py ...
只要project应用在INSTALLED_APPS中,全量测试应能找到用例。若结构不符,可使用--pattern参数指定测试文件匹配规则:
python project/manage.py test --pattern="tests.py"
4. 查看测试发现详细日志
运行全量测试时添加-v 2参数,可查看Django扫描文件的详细过程,确认是否跳过了目标测试类:
python project/manage.py test -v 2
内容的提问来源于stack exchange,提问作者domjanzsoo
相关产品推荐
相关产品推荐

