VSCode中Django项目单元测试配置异常问题咨询
解决VSCode中Django Unittest测试配置异常的问题
嘿,我看你在配置VSCode的unittest插件来运行Django测试时碰到了异常,结合你的环境(Python3.6.5、Django2.0.3、VSCode1.21.1),我来帮你搞定这个问题。
首先,你当前的配置有两个关键问题:
unittestArgs里的-s参数用了Python模块路径app.tests,但VSCode的unittest插件这里需要的是文件系统的相对路径- 你漏掉了
-p参数来指定测试文件的匹配模式,插件没法定位到test_*.py文件
正确的Workspace Settings配置
把你的.vscode/settings.json里的unittest部分改成下面这样:
{ "python.unitTest.unittestEnabled": true, "python.unitTest.unittestArgs": [ "-v", "-s", "./app/tests", "-p", "test_*.py" ], "python.pythonPath": "./venv/bin/python3.6" // 替换成你自己的虚拟环境Python路径 }
每个参数的作用:
-v:开启详细输出,方便你看每个测试用例的执行状态-s ./app/tests:告诉插件从哪个文件夹找测试文件(这里是项目根目录下的app/tests文件夹)-p test_*.py:指定要匹配的测试文件名格式,对应你项目里的命名规则
更稳妥的Django测试调试方案
如果你用上面的配置还是有问题,或者想更贴近命令行python manage.py test app.tests的运行逻辑,推荐直接在.vscode/launch.json里配置专门的Django测试调试器:
{ "version": "0.2.0", "configurations": [ { "name": "Django Tests", "type": "python", "request": "launch", "program": "${workspaceFolder}/manage.py", "args": [ "test", "app.tests", "--verbosity=2" ], "django": true } ] }
配置好后,直接在VSCode的调试面板选择这个配置运行,就能和命令行完全一致地执行测试,还能正常断点调试。
额外注意事项
- 确保VSCode用的是你项目的虚拟环境:点击左下角的Python版本选择器,切换到你项目的虚拟环境,避免出现模块找不到的问题
- 刷新测试面板:配置完成后,打开左侧活动栏的「测试」图标,点击刷新按钮,如果能看到app/tests下的测试用例,就说明配置生效了
内容的提问来源于stack exchange,提问作者Arxas
相关产品推荐
相关产品推荐

