如何设置VSCode中的Pytest测试环境配置?

2026-05-07 23:012阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计873个文字,预计阅读时间需要4分钟。

如何设置VSCode中的Pytest测试环境配置?

VSCode 默认不支持pytest,需要手动配置测试框架。以下是配置步骤:

怎么让 VSCode 找到 pytest 可执行文件

VSCode 不靠 PATH 查找 pytest,而是依赖 Python 解释器环境里是否真装了它,并通过设置明确指向该环境。

  • 先在终端进项目根目录,运行 pip install pytest(推荐在虚拟环境中装)
  • 左下角点击 Python 版本,用 Ctrl+Shift+PPython: Select Interpreter 选中这个带 pytest 的解释器
  • 验证:终端执行 python -m pytest --version 能返回版本号才算成功
  • 别配 python.testing.pytestPath —— 这个字段已过时,新版扩展只认解释器环境里的模块

为什么测试资源管理器里什么都没显示

VSCode 不自动扫描全项目,它只按你给的路径 + 文件名规则找 test_*.py*_test.py,且默认只查 tests/ 或项目根目录。

  • 检查测试文件名是否合规:比如 my_tests.py 不行,得叫 test_my.pymy_test.py
  • 如果测试在 src/tests/ 下,必须在 .vscode/settings.json 里写:"python.testing.pytestArgs": ["src/tests/", "-s"]
  • 如果测试和源码都在 src/ 下(即 src/mymodule/src/tests/ 并列),pytestArgs["src/"] 更稳妥
  • 改完 settings 后,**必须点测试侧边栏右上角 ↻ 按钮手动刷新**,VSCode 不会自动重扫

Debug Test 断点不命中或报 ModuleNotFoundError

调试时工作目录(cwd)默认是测试文件所在目录,不是项目根,导致 from mypackage import x 失败——这是最常被忽略的根源。

  • .vscode/settings.json 中加这一行:"python.testing.cwd": "${workspaceFolder}"
  • 如果源码在 src/,则写:"python.testing.cwd": "${workspaceFolder}/src"
  • 配合 "python.envFile": "${workspaceFolder}/.env",并在 .env 里写 PYTHONPATH=${workspaceFolder}/src,双重保险
  • 断点别打在 def test_xxx(): 那行,要打在函数体第一句代码上,否则 pytest 加载阶段就跳过了

launch.json 调试单个测试时常见错误

想用 F5 直接调试一个测试函数?launch.json 必须严格按 pytest 模块方式启动,不能当普通脚本跑。

  • 删掉 "program" 字段,它和 "module" 冲突
  • 必须写 "module": "pytest",等价于终端执行 python -m pytest
  • "args" 是数组,例如:["tests/test_api.py::test_login", "-s"] —— 双冒号分隔文件和函数名
  • "cwd" 必须和 settings.json 里一致,否则 import 依然炸
  • 不要在 launch.json 里重复设 python.defaultInterpreterPath,它由 VSCode 左下角解释器决定

最易漏的其实是两件事:一是改完 settings.json 忘了点那个小小的刷新按钮,二是以为终端能 import 就等于调试器也能 import —— 实际上它们的工作目录和 sys.path 完全独立。

标签:vscode

本文共计873个文字,预计阅读时间需要4分钟。

如何设置VSCode中的Pytest测试环境配置?

VSCode 默认不支持pytest,需要手动配置测试框架。以下是配置步骤:

怎么让 VSCode 找到 pytest 可执行文件

VSCode 不靠 PATH 查找 pytest,而是依赖 Python 解释器环境里是否真装了它,并通过设置明确指向该环境。

  • 先在终端进项目根目录,运行 pip install pytest(推荐在虚拟环境中装)
  • 左下角点击 Python 版本,用 Ctrl+Shift+PPython: Select Interpreter 选中这个带 pytest 的解释器
  • 验证:终端执行 python -m pytest --version 能返回版本号才算成功
  • 别配 python.testing.pytestPath —— 这个字段已过时,新版扩展只认解释器环境里的模块

为什么测试资源管理器里什么都没显示

VSCode 不自动扫描全项目,它只按你给的路径 + 文件名规则找 test_*.py*_test.py,且默认只查 tests/ 或项目根目录。

  • 检查测试文件名是否合规:比如 my_tests.py 不行,得叫 test_my.pymy_test.py
  • 如果测试在 src/tests/ 下,必须在 .vscode/settings.json 里写:"python.testing.pytestArgs": ["src/tests/", "-s"]
  • 如果测试和源码都在 src/ 下(即 src/mymodule/src/tests/ 并列),pytestArgs["src/"] 更稳妥
  • 改完 settings 后,**必须点测试侧边栏右上角 ↻ 按钮手动刷新**,VSCode 不会自动重扫

Debug Test 断点不命中或报 ModuleNotFoundError

调试时工作目录(cwd)默认是测试文件所在目录,不是项目根,导致 from mypackage import x 失败——这是最常被忽略的根源。

  • .vscode/settings.json 中加这一行:"python.testing.cwd": "${workspaceFolder}"
  • 如果源码在 src/,则写:"python.testing.cwd": "${workspaceFolder}/src"
  • 配合 "python.envFile": "${workspaceFolder}/.env",并在 .env 里写 PYTHONPATH=${workspaceFolder}/src,双重保险
  • 断点别打在 def test_xxx(): 那行,要打在函数体第一句代码上,否则 pytest 加载阶段就跳过了

launch.json 调试单个测试时常见错误

想用 F5 直接调试一个测试函数?launch.json 必须严格按 pytest 模块方式启动,不能当普通脚本跑。

  • 删掉 "program" 字段,它和 "module" 冲突
  • 必须写 "module": "pytest",等价于终端执行 python -m pytest
  • "args" 是数组,例如:["tests/test_api.py::test_login", "-s"] —— 双冒号分隔文件和函数名
  • "cwd" 必须和 settings.json 里一致,否则 import 依然炸
  • 不要在 launch.json 里重复设 python.defaultInterpreterPath,它由 VSCode 左下角解释器决定

最易漏的其实是两件事:一是改完 settings.json 忘了点那个小小的刷新按钮,二是以为终端能 import 就等于调试器也能 import —— 实际上它们的工作目录和 sys.path 完全独立。

标签:vscode