如何在vscode中调试单个Django测试?

时间:2019-07-02 19:18:59

标签: python django visual-studio-code vscode-debugger

我添加了一个启动配置,该配置允许我在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

3 个答案:

答案 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中对其进行硬编码。