You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 19:32:07