在VSCode中进行单元测试和覆盖率分析

15次阅读

需安装python Test Explorer扩展并配置pytest为默认框架,设置–cov参数生成html覆盖率报告,安装pytest-cov插件,通过vscode命令或终端执行带–cov-fail-under的pytest命令量化测试覆盖。

在VSCode中进行单元测试和覆盖率分析

如果您在VSCode中编写代码后需要验证逻辑正确性并量化测试覆盖程度,则需借助扩展与配置工具完成单元测试执行及覆盖率数据采集。以下是实现该目标的具体操作路径:

本文运行环境:macBook Air,macOS Sequoia。

一、安装Python测试支持扩展

VSCode原生不内置Python单元测试框架集成能力,需通过官方推荐扩展启用测试发现、运行与结果展示功能。该扩展提供对unittest、pytest等主流框架的识别与交互支持。

1、打开VSCode左侧活动栏,点击扩展图标(方块拼图形状)。

2、在搜索框中输入Python Test Explorer,选择由microsoft发布的扩展并点击安装。

3、安装完成后重启VSCode,确保扩展已激活。

二、配置pytest作为默认测试框架

pytest具备更简洁的断言语法和丰富的插件生态,适合作为Python项目的默认测试驱动器。VSCode需明确指定其路径与参数,以正确调用并解析测试结果。

1、在项目根目录下创建.vscode/settings.json文件(若不存在)。

2、在该文件中写入以下配置项:

3、设置python.testing.pytestArgs”为[“–cov=src”, “–cov-report=html“],其中src为待测源码目录名。

4、设置“python.testing.unittestEnabled”为false,并将“python.testing.pytestEnabled”设为true。

三、生成HTML格式覆盖率报告

coverage.py是Python生态中标准的覆盖率统计工具,配合pytest-cov插件可在测试执行后自动生成结构化报告。HTML格式便于直接在浏览器中逐行查看未覆盖代码段。

1、在终端中执行pip install pytest-cov命令安装插件。

2、确保项目中存在pyproject.tomlsetup.cfg,并在其中配置[tool.coverage.run]部分,包含source = [“src”]。

3、在VSCode中按下Cmd+Shift+P,输入Python: Discover Tests并回车,触发测试发现流程。

4、测试运行结束后,检查终端输出是否出现htmlcov/index.html生成提示。

四、手动运行带覆盖率参数的pytest命令

当自动测试配置未生效或需临时调试特定测试集时,可绕过VSCode界面,直接在集成终端中调用带参数的pytest命令,强制生成最新覆盖率数据。

1、打开VSCode底部集成终端(Ctrl+`)。

2、切换至项目根目录,执行pytest –cov=src –cov-report=html –cov-fail-under=80

3、命令中的–cov-fail-under=80表示覆盖率低于80%时令命令返回非零退出码,可用于CI阶段拦截低覆盖提交。

4、执行完毕后,在项目目录下确认htmlcov/子目录已生成完整静态页面文件。

text=ZqhQzanResources