VSCode运行Django单元测试出现AppRegistryNotReady错误求助
Django单元测试在VSCode测试资源管理器运行报错
AppRegistryNotReady的解决方法 我用Django自带的python manage.py test命令运行单元测试时一切正常,但通过VSCode测试资源管理器运行时,会抛出*django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.*错误。我查过多个类似问题,但现有解决方案都无效。
我已经尝试了以下操作:
- 在测试类的
SetUpTestData方法及实际测试方法内部导入models等类,而非在文件顶部导入。这能让测试用例显示在测试资源管理器中,但运行仍然报错。 - 在测试类所在文件顶部手动设置环境变量:
import os os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
- 在项目根目录添加
.env文件,内容为DJANGO_SETTINGS_MODULE = my_project.settings - 在
launch.json中添加用于调试测试的配置:
"configurations": [ { "name": "Django test", "type": "python", "request": "launch", "program": "${workspaceFolder}\\manage.py", "args": [ "test" ], "purpose": ["debug-test"], "django": true, "justMyCode": true } ]
- 移除应用文件夹中的
tests.py文件,因为我的测试代码存放在单独的tests文件夹中(Django似乎不允许两者同时存在)。
我的项目文件夹结构如下:
root |_ my_app |_ tests |_ __init__.py |_ test_models.py |_ my_project
附上我的VSCode settings.json配置:
{ "python.testing.unittestArgs": [ "-v", "-s", ".", "-p", "test_*.py" ], "python.testing.pytestEnabled": false, "python.testing.unittestEnabled": true }
请问如何让VSCode测试资源管理器与Django单元测试兼容?
内容的提问来源于stack exchange,提问作者NiH
相关产品推荐
相关产品推荐

