VS Code中Pytest无法识别工作区测试,报ModuleNotFoundError求助
解决VS Code PyTest面板无法识别测试及ModuleNotFoundError问题
对齐Python环境:打开命令面板(Ctrl+Shift+P),执行
Python: Select Interpreter,选择和你命令行运行pytest时一致的Python环境(可通过命令行输入which python或where python查看当前环境路径)。VS Code常默认选用系统Python,若和你激活的虚拟环境不匹配,会直接导致路径识别问题。配置VS Code测试路径与项目根目录:
在项目的.vscode/settings.json文件中(无则新建)添加以下配置:{ "python.testing.pytestEnabled": true, "python.testing.pytestArgs": ["tests"], // 替换为你的测试文件夹名称或具体测试文件路径 "python.analysis.extraPaths": ["${workspaceFolder}"], "python.defaultInterpreterPath": "${workspaceFolder}/venv/bin/python" // Windows系统改为"${workspaceFolder}\\venv\\Scripts\\python.exe" }核心是
python.analysis.extraPaths将项目根目录加入Python搜索路径,以此解决ModuleNotFoundError——命令行运行时你大概率处于项目根目录,能正常找到模块,但VS Code默认不会自动将该目录加入sys.path。检查测试文件命名规则:确保测试文件为
test_*.py或*_test.py格式,测试函数/类以test_开头,pytest仅识别符合该规则的测试项。重新触发测试识别:修改配置后,打开命令面板执行
Python: Discover Tests,或直接重启VS Code,让配置生效。避免使用相对导入:测试文件中优先使用绝对导入,比如项目根目录下的
YADAYADA模块,直接写import YADAYADA,不要用from .. import YADAYADA这类相对路径,防止VS Code解析路径出错。
内容的提问来源于stack exchange,提问作者Paulius Mikalauskas
相关产品推荐
相关产品推荐

