PyCharm 集成

PyTest YAML 插件为 PyCharm 提供了对 pytest-yaml-sanmu 测试用例的深度集成。

备注

暂只支持 Pycharm 2025.2.4+

该插件将符合模式(默认为 test_*.yaml )的YAML文件识别为测试文件,旨在弥合文本格式与 PyTest 执行环境之间的差异。主要功能包括:

  • 语法校验:基于 pytest-yaml-sanmu 规范及用户自定义步骤的实时校验

  • 便捷执行:支持直接在编辑器中一键运行 YAML 测试文件

  • 运行配置:完整支持环境变量、解释器选择及 PyTest 参数配置

安装

插件可通过 JetBrains Marketplace 安装,或通过本地磁盘文件安装:

  1. 打开 PyCharm 设置 (Settings/Preferences)

  2. 导航至 Plugins

  3. 搜索 PyTest YAML 或选择 "Install Plugin from Disk..."

安装插件

插件配置

插件的全局配置位于 Settings > Tools > PyTestYAML

插件设置界面

业务步骤 Schema

为了启用对自定义业务步骤的代码补全和校验,您需要在配置中指定 Schema 路径。插件支持两种工作模式:

  • 目录模式(推荐):指向一个包含多个 .yaml.json 文件的目录。插件会自动扫描该目录,将每个文件识别为一个独立的步骤定义(以文件名为 Key),并自动进行合并

  • 文件模式(高级):指向一个单独的 Schema 入口文件。适用于需要手动管理 anyOf$ref 或复杂继承结构的高级用户

若留空,插件将仅使用 pytest-yaml-sanmu 内置的基础 Schema(对step仅要求为数组,无其他约束)。

校验与补全

插件利用 JSON Schema 技术对 YAML 文件进行静态分析

实时校验 当缺少必要的依赖库(如 pytest-yaml-sanmu)或出现不符合 Schema 定义的字段时,编辑器会进行行内高亮提示

依赖缺失警告

代码补全 基于配置的 Steps Schema Path,插件提供上下文感知的代码提示

  • 步骤关键字补全:提示可用的步骤名称(如 request)。

    步骤关键字补全
  • 属性补全:提示特定步骤下的有效属性(如 request 步骤下的 methodurl

    步骤属性补全

运行测试

插件会自动识别项目中匹配 test_*.yaml 模式的文件(匹配模式可在设置中修改)

上下文菜单

您可以右键点击编辑器背景,或点击测试定义旁边的行号栏图标(Gutter Icon)来运行测试

上下文菜单执行

运行/调试配置

插件为每个执行的文件创建标准的 PyCharm 运行配置。您可以在 Run > Edit Configurations... 中进行自定义

运行调试配置

支持的配置项包括:

  • Target:脚本路径(自动设置)

  • Additional Arguments:传递给 pytest 的附加参数(例如 -vs, --alluredir=./report

  • Environment Variables:为测试运行设置特定的环境变量

  • Python Interpreter:选择执行测试的虚拟环境或系统解释器

  • Working Directory:默认为项目根目录

路线图

当前版本主要依赖 JSON Schema 规范来实现通用的校验和补全功能。未来的更新计划通过 PyCharm 原生的 PSI (Program Structure Interface) 接口进行深度集成。

计划中的特性:

  • 增强型补全 (CompletionContributor): 计划从 Schema 提示升级为原生代码补全,支持为不同类型的步骤显示特定图标、渲染文档注释弹窗,以及更智能的列表过滤逻辑。

  • 自定义代码检查 (Annotator): 计划替代通用的 Schema 错误信息,提供更精准、更具可读性的错误提示(如 "未知步骤 'reqiest',您是否是指 'request'?")。

  • 快速修复 (Quick Fixes): 支持一键修复步骤名称拼写错误,或自动生成必填字段模板。