Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>Pytest Smart RunnerNew to Visual Studio Code? Get it now.
Pytest Smart Runner

Pytest Smart Runner

whyactions

|
23 installs
| (0) | Free
Run pytest tests directly from the editor with configurable environment variables and arguments
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Pytest Runner for Trae IDE

一个功能强大的 Trae IDE 插件,提供与 PyCharm 测试模块一致的 pytest 运行能力。

功能特性

🚀 核心功能

  • 🟢 一键运行测试: 在测试函数前显示绿色可执行图标,点击即可运行
  • 🟢🟢🟢 多种运行模式: 支持运行单个测试函数、测试类、测试文件或所有测试,带有增强视觉反馈
  • 🏷️ 测试标签系统: 自动为测试分配标签(unit、integration、functional),支持按标签筛选运行
  • 📊 测试覆盖率: 集成测试覆盖率分析,支持VS Code原生测试覆盖率显示
  • 🔧 环境变量配置: 通过键值对或.env文件设置自定义环境变量
  • ⚡ 参数自定义: 支持自定义 pytest 执行参数,智能警告抑制
  • 🎨 增强输出: 彩色化测试结果,带图标显示(✅ 通过,❌ 失败,⚠️ 跳过)
  • 🛡️ 智能错误处理: 当Python或pytest未找到时提供清晰错误信息
  • 📄 环境文件支持: 从.env文件加载环境变量
  • 🧪 VS Code Tests API: 完全兼容VS Code原生测试API,支持测试资源管理器
  • 🎯 智能面板切换: 测试完成后自动切换到「run: trae.TestRun」面板,提升用户体验

📍 CodeLens 支持

在 Python 测试文件中,插件会自动检测测试函数并在代码中显示以下操作按钮:

  • ▶ Run Test - 运行单个测试函数
  • 🐛 Debug Test - 调试单个测试函数
  • ▶▶ Run All Tests in Class - 运行测试类中的所有测试
  • ▶▶▶ Run All Tests in File - 运行文件中的所有测试

🏷️ 测试标签系统

插件会根据测试函数名称自动分配标签,帮助您更好地组织和筛选测试:

自动标签分类

  • Unit Tests (unit): 包含 "unit" 或以 "test_unit" 开头的测试
  • Integration Tests (integration): 包含 "integration" 或 "integr" 的测试
  • Functional Tests (functional): 包含 "functional"、"func" 或 "e2e" 的测试
  • Runnable (runnable): 所有可执行的测试都会自动添加此标签

标签使用示例

def test_unit_user_creation():  # 自动标记为 unit 测试
    pass

def test_integration_database():  # 自动标记为 integration 测试
    pass

def test_functional_user_workflow():  # 自动标记为 functional 测试
    pass

🧪 VS Code Tests API 集成

插件完全兼容 VS Code 原生测试 API,提供以下功能:

测试资源管理器

  • 在 VS Code 测试资源管理器中查看所有测试
  • 按文件夹结构组织测试
  • 支持测试状态实时更新

测试运行配置

  • Run Tests: 标准测试执行
  • Debug Tests: 调试模式执行
  • Run with Coverage: 带覆盖率分析的测试执行

测试结果显示

  • 详细的测试结果和错误信息
  • 测试执行时间统计
  • 失败测试的堆栈跟踪信息
  • 智能面板切换: 测试完成后自动切换到测试结果面板,无需手动操作

🔧 配置选项

  • Python 解释器路径: 指定 Python 解释器(默认:.venv/bin/python)
  • Pytest 可执行文件路径: 指定 pytest 命令路径(默认:.venv/bin/pytest)
  • 默认参数: 设置 pytest 的默认执行参数
  • 环境变量: 配置测试执行时的环境变量
  • 环境变量文件: 从.env文件加载环境变量
  • 工作目录: 设置 pytest 的工作目录
  • 自动虚拟环境: 默认配置使用项目根目录下的 .venv 虚拟环境

安装

  1. 在 Trae IDE 中打开扩展管理器
  2. 搜索 "Pytest Runner"
  3. 点击安装

使用方法

快速开始

  1. 打开包含 pytest 测试的 Python 文件
  2. 插件会自动检测测试函数并显示运行按钮
  3. 点击 ▶ Run Test 按钮运行测试

测试函数检测

插件会自动检测以下模式的测试函数:

  • 函数名以 test_ 开头的函数
  • 函数名以 _test 结尾的函数
  • 类名以 Test 开头或以 Test 结尾的测试类
  • 测试类中的测试方法

配置插件

方法一:通过命令面板

  1. 按 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (macOS) 打开命令面板
  2. 输入 "Configure Pytest" 并选择
  3. 在弹出的选项中选择要配置的项目

方法二:通过设置文件

在 Trae IDE 设置中添加以下配置:

{
  "pytestSmartRunner.pythonPath": ".venv/bin/python",
  "pytestSmartRunner.pytestPath": ".venv/bin/pytest",
  "pytestSmartRunner.defaultArgs": ["-v", "--tb=short"],
  "pytestSmartRunner.environmentVariables": {
    "PYTHONPATH": "/path/to/your/modules",
    "DEBUG": "1"
  },
  "pytestSmartRunner.workingDirectory": ""
}

支持的命令

  • pytest-smart-runner.runTest: 运行所有测试
  • pytest-smart-runner.runTestFunction: 运行当前测试函数
  • pytest-smart-runner.runTestFile: 运行当前文件的所有测试
  • pytest-smart-runner.runTestClass: 运行当前测试类
  • pytest-smart-runner.configure: 打开配置对话框

配置说明

Python 解释器路径 (pythonPath)

指定要使用的 Python 解释器。默认使用项目虚拟环境:

  • .venv/bin/python (默认:项目虚拟环境)
  • python (系统默认 Python)
  • /usr/bin/python3 (绝对路径)
  • ./venv/bin/python (其他虚拟环境路径)

Pytest 路径 (pytestPath)

指定 pytest 可执行文件的路径。默认使用项目虚拟环境:

  • .venv/bin/pytest (默认:项目虚拟环境)
  • pytest (系统默认 pytest)
  • /path/to/venv/bin/pytest (其他虚拟环境中的 pytest)
  • python -m pytest (通过 Python 模块运行)

默认参数 (defaultArgs)

设置 pytest 的默认执行参数,例如:

  • ["-v"] - 详细输出
  • ["-v", "--tb=short"] - 详细输出和简短回溯
  • ["-x", "--pdb"] - 遇到失败时停止并进入调试器

环境变量 (environmentVariables)

设置测试执行时的环境变量:

{
  "PYTHONPATH": "/path/to/modules",
  "DEBUG": "1",
  "DATABASE_URL": "sqlite:///test.db"
}

工作目录 (workingDirectory)

设置 pytest 的工作目录。如果为空,则使用工作区根目录。

示例

基本测试文件

import pytest

def test_addition():
    """测试加法功能"""
    assert 1 + 1 == 2

def test_subtraction():
    """测试减法功能"""
    assert 5 - 3 == 2

class TestCalculator:
    """计算器测试类"""
    
    def test_multiply(self):
        """测试乘法"""
        assert 3 * 4 == 12
    
    def test_divide(self):
        """测试除法"""
        assert 10 / 2 == 5

@pytest.mark.parametrize("a,b,expected", [
    (1, 2, 3),
    (2, 3, 5),
    (3, 4, 7)
])
def test_parametrized_addition(a, b, expected):
    """参数化测试"""
    assert a + b == expected

在上述文件中,插件会在每个测试函数和测试类前显示运行按钮。

故障排除

常见问题

Q: 插件没有显示运行按钮 A: 确保:

  • 文件是 Python 文件 (.py)
  • 函数名符合测试函数命名规范
  • 插件已正确激活

Q: 运行测试时出现 "pytest not found" 错误 A: 检查:

  • pytest 是否已安装 (pip install pytest)
  • pytestPath 配置是否正确
  • Python 环境是否正确

Q: 测试运行但没有输出 A: 检查:

  • 输出面板是否打开
  • 工作目录配置是否正确
  • 环境变量是否正确设置

调试技巧

  1. 查看输出面板中的详细信息
  2. 检查 pytest 命令是否能在终端中正常运行
  3. 验证配置文件中的路径是否正确
  4. 确保测试文件在正确的工作目录中

开发

构建插件

# 安装依赖
npm install

# 编译 TypeScript
npm run build

# 监听文件变化
npm run watch

项目结构

pytest-smart-runner/
├── src/
│   ├── extension.ts          # 插件入口
│   ├── pytestSmartRunner.ts       # pytest 运行器
│   ├── testFunctionDetector.ts # 测试函数检测
│   ├── configurationManager.ts # 配置管理
│   └── codeLensProvider.ts   # CodeLens 提供器
├── manifest.json             # 插件清单
├── tsconfig.json            # TypeScript 配置
└── README.md               # 说明文档

贡献

欢迎提交 Issue 和 Pull Request!

许可证

MIT License

更新日志

v1.0.6

  • 🗂️ 目录过滤: 为测试发现添加可配置的目录排除功能
    • 新增 pytestSmartRunner.excludeDirectories 设置,用于指定要忽略的目录
    • 默认排除:.git、.venv、node_modules、__pycache__、.pytest_cache
    • 支持读取 pytest 配置文件(pytest.ini、pyproject.toml、tox.ini、setup.cfg)
    • 新增 pytestSmartRunner.configFiles 设置,用于指定要读取的配置文件
    • 自动解析 pyproject.toml 中的 [tool.pytest.ini_options]
    • 自动解析 INI 文件中的 [pytest] 部分
  • 🔍 增强测试发现:
    • 遵循 pytest 配置的测试文件模式和排除规则
    • 改进文件监听,支持可配置的测试模式
    • 通过排除无关目录提高性能

v1.0.5

  • 🆕 新功能: 集成 VS Code 测试 API,提供原生测试发现和执行
  • ✨ 增强功能: 测试现在显示在 VS Code 内置的测试资源管理器面板中
  • 🔧 改进: 添加实时测试结果解析和状态更新
  • ⚙️ 技术改进: 实现 TestController、TestItem 和 TestRun 以实现与 VS Code 的无缝集成

v1.0.4

  • 🐛 重要 Bug 修复: 修复了在测试类中的测试方法执行时错误地运行整个类的问题
  • ✅ 精确测试执行: 现在点击测试方法的运行按钮只会执行该特定方法,而不是整个测试类
  • 🔧 改进测试检测: 增强了测试函数检测器,正确识别类中的测试方法并生成完整的测试路径

v1.0.3

  • 🟢 增强视觉反馈:为运行测试添加绿色图标
  • 🎨 彩色化输出:测试结果带有颜色和图标显示
  • 📄 环境文件支持:支持从 .env 文件加载环境变量
  • 🛡️ 智能错误处理:改进错误消息和异常处理
  • ⚡ 优化执行:智能警告抑制和更好的输出格式

v1.0.0

  • 初始版本发布
  • 支持基本的 pytest 运行功能
  • 提供 CodeLens 集成
  • 支持配置管理
  • 与 PyCharm 测试模块功能对等
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft