如何在 vscode 中调试单个 Django 测试?
How do I debug individual Django tests in vscode?
我添加了一个启动配置,允许我 运行 Django 中的所有测试,另一个允许我 运行 服务器,这两个都工作正常。
我正在寻找调试单个文件的方法,但在参数中使用 ${file}
给出了 django 不喜欢的正常路径。
我想要一种方法将 ${file}
更改为 python 路径,以便我可以在单个文件上调试我的测试。
python manage.py test --noinput --keepdb python.path.to.my.file
在命令行中工作。
下面的配置好像差不多吧:
{ "name": "Test File",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"--noinput",
"--keepdb",
"${file}"
],
"django": true
}
然而,当我运行这个配置时我得到一个错误,
我认为这是因为 ${file}
变成了
path/to/my/file
而不是 path.to.my.file
.
没有将文件路径转换为带点的名称,因此您需要 hard-code 在您的 launch.json
.
如果您使用 Mac 或 Linux,以下启动配置应该适用于 Django 执行的单个单元测试:
{
"name": "Python: Django Debug Single Test",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"`echo -n ${relativeFileDirname} | tr \/ .`.${fileBasenameNoExtension}"
],
"django": true
},
这里使用tr
命令将相对路径中的/
翻译成.
如果您使用 Windows 和 git bash,带有 tr 的启动配置也可以使用,但您需要引用变量替换并引用双反斜杠。
{
"name": "Python: Django Debug Single Test",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"`echo -n \"${relativeFileDirname}\" | tr \\ .`.${fileBasenameNoExtension}"
],
"django": true
},
这对我在 windows 下的 wsl ubuntu 中有用,你的 tests.py 作为打开的文件:
{
"name": "Test Django",
"type": "python",
"request": "launch",
"python": "${workspaceFolder}/../.venv/bin/python",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"${relativeFileDirname}"
],
"django": true
},
我认为你不需要任何回应 | tr ... fileBasenameNoExtension 等
我添加了一个启动配置,允许我 运行 Django 中的所有测试,另一个允许我 运行 服务器,这两个都工作正常。
我正在寻找调试单个文件的方法,但在参数中使用 ${file}
给出了 django 不喜欢的正常路径。
我想要一种方法将 ${file}
更改为 python 路径,以便我可以在单个文件上调试我的测试。
python manage.py test --noinput --keepdb python.path.to.my.file
在命令行中工作。
下面的配置好像差不多吧:
{ "name": "Test File",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"--noinput",
"--keepdb",
"${file}"
],
"django": true
}
然而,当我运行这个配置时我得到一个错误,
我认为这是因为 ${file}
变成了
path/to/my/file
而不是 path.to.my.file
.
没有将文件路径转换为带点的名称,因此您需要 hard-code 在您的 launch.json
.
如果您使用 Mac 或 Linux,以下启动配置应该适用于 Django 执行的单个单元测试:
{
"name": "Python: Django Debug Single Test",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"`echo -n ${relativeFileDirname} | tr \/ .`.${fileBasenameNoExtension}"
],
"django": true
},
这里使用tr
命令将相对路径中的/
翻译成.
如果您使用 Windows 和 git bash,带有 tr 的启动配置也可以使用,但您需要引用变量替换并引用双反斜杠。
{
"name": "Python: Django Debug Single Test",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"`echo -n \"${relativeFileDirname}\" | tr \\ .`.${fileBasenameNoExtension}"
],
"django": true
},
这对我在 windows 下的 wsl ubuntu 中有用,你的 tests.py 作为打开的文件:
{
"name": "Test Django",
"type": "python",
"request": "launch",
"python": "${workspaceFolder}/../.venv/bin/python",
"program": "${workspaceFolder}/manage.py",
"args": [
"test",
"${relativeFileDirname}"
],
"django": true
},
我认为你不需要任何回应 | tr ... fileBasenameNoExtension 等