VSCode 上的发现测试错误:生成 python ENOENT

Bha*_*avi 8 python visual-studio visual-studio-code vscode-python

我在 vscode 中运行一个 python 项目virtualenv。Python解释器设置正确。当我试图发现测试时,它给了我一个错误说

python /Users/user/.vscode/extensions/ms-python.python-2019.10.44104/pythonFiles/testing_tools/run_adapter.py discover pytest -- -s project/
Test Discovery failed: 
Error: spawn /Users/<username>/apps/project/venv/bin/python ENOENT
Run Code Online (Sandbox Code Playgroud)

我的 vscode settings.json 看起来像这样,我还没有配置 launch.json

{
    "python.pythonPath": "/Users/<username>/apps/project/venv/bin/python",
    "python.testing.unittestEnabled": false,
    "python.testing.nosetestsEnabled": false,
    "python.testing.pytestEnabled": true,
    "python.testing.pytestArgs": [
        "project"
    ],
}
Run Code Online (Sandbox Code Playgroud)

当我/Users/<username>/apps/project/venv/bin/python在终端上输入时,python shell 打开了。

ENOENT 通常意味着它是一个无效的路径,但该路径似乎完全没问题。

$echo $PATH
/Users/<username>/apps/project/venv/bin
Run Code Online (Sandbox Code Playgroud)

use*_*976 10

添加为我"python.testing.cwd": "${workspaceFolder}"解决settings.json了这个问题。


Fla*_*ire 7

python.testing.cwd我刚刚遇到了同样的问题,发现这是由于我使用workspaceDir而不是作为workspaceFolder变量的设置中不存在文件夹所致

请注意,在此处的更改生效之前,似乎需要重新启动 VSCode,即,如果将其更改为错误的值,它似乎会继续工作,但重新启动后,您将得到 ENOENT,反之亦然

  • 删除了“pytest.testing.cwd”并重新加载了 VSCode,它也解决了我的问题 - 谢谢这个建议,效果很好!看起来 VScode 设置即使看起来已更新也可以被缓存。 (4认同)

Agn*_*hal 4

在我删除项目内的本地 .vscode 文件夹、保存工作区并创建一个包含测试设置的新 .vscode/settings.json 后,它自行解决。这似乎已经解决了。

来源: https: //github.com/microsoft/vscode-python/issues/5316