我正在使用 python 3.6.5、django 2.0.3 和 VSCode 1.21.1。
在我的项目中,我在以下位置 app/tests/
中有几个测试文件 (test_*.py
)。我可以使用 cmd 简单地运行它们:python manage.py test app.tests
。我想使用 VSCode 测试调试,所以我决定配置内置的单元测试处理程序。
首先,我编辑了工作区 settings.json
文件,添加了以下代码:
"python.unitTest.unittestEnabled": true,
"python.unitTest.unittestArgs": [
"-s",
"app.tests",
"test_*.py",
事实证明,app
和 tests
文件夹都需要 __init__.py
文件才能检测包含测试的文件。我最近切换到 Python 3 并且非常高兴 __init__.py
文件不再是必需的 ( PEP420 )。但是,是的,我必须添加它们才能使测试检测工作。
然后我发现如果不首先调用 django.setup()
和设置 DJANGO_SETTINGS_MODULE
我仍然无法运行我的测试。因此我必须在每个测试文件的开头添加以下代码:
import django
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyAwesomeWebApp.settings')
django.setup()
是否真的需要这一切,还是有其他方法可以在 VSCode 中配置单元测试?
最佳答案
我遇到了同样的问题。因此,我已经设法在 VS 中使用调试配置中的下一个配置运行 django 测试。
{
"name": "Python: Django Test",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceFolder}/manage.py",
"cwd": "${workspaceRoot}",
"args": [
"test",
],
"env": {},
"envFile": "${workspaceFolder}/.env",
},
我可以使用断点并探索测试变量状态。所以我希望它能帮助你或任何人。
关于python - VSCode - django 项目困惑的单元测试配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49620471/