python - VSCode - django 项目困惑的单元测试配置

标签 python django visual-studio-code

我正在使用 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",

事实证明,apptests 文件夹都需要 __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/

相关文章:

python - 为分组数据的 RNN 生成具有特定长度的序列/批处理

python - Safari 浏览器中的下拉菜单不显示下拉元素

python - 使用 reportlab 生成的 pdf 提供选项卡标题

python - 运行服务器的 Unicodedecodeerror

c - VS 代码片段未显示在 ctrl+space 上(但用户定义显示)

node.js - 在 Visual Studio Code 中调试 Outlook 的 Web 加载项

python - 来自 netcdf 的 Xarray 数据数组返回大于输入的 numpy 网格数组

python - Django 模板列表未在 for 循环中打印

python - 优化:关于 AMP (Pyomo)、Scipy、Matlab

visual-studio-code - 删除重复的智能感知建议