我添加了一个启动配置,该配置允许我在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
。
答案 0 :(得分:2)
如果您使用的是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
命令在相对路径中将/
转换为.
。
答案 1 :(得分:2)
如果您使用的是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
},
答案 2 :(得分:1)
文件路径没有转换为点名,因此您需要在launch.json
中对其进行硬编码。