Visual Studio Code 测试使用和设置说明
关注 1800
如何使用 VSCode 测试功能视频演示 YouTube如何使用 VSCode 测试功能视频演示 Bilibili
Visual Studio Code 测试
在 Visual Studio Code 中进行测试,通常需要安装对应的语言扩展,以及测试工具。以 Python 为例,除了安装扩展 Python,还需要 Python 包unittest或pytest。
如需查找与测试相关的扩展,可以在扩展面板中按类别筛选(在扩展面板的搜索栏输入@category:testing)。
由于不同语言的测试方式可能存在较大的不同,本文主要介绍 VSCode 中与测试相关的通用操作和功能。
为什么需要测试?
对于小型项目,开发者可能更倾向于快速迭代,而跳过系统化的测试。然而,在大型项目或团队协作环境中,测试是保证代码质量、提升可维护性的关键环节。
在 Visual Studio Code 中配置测试环境
一般情况下,在用于测试的扩展启动后,VSCode 会显示测试面板。根据扩展的不同,你可能需要在面板中进行更为详细的配置。
以配置 Python 代码的测试为例,如果选择使用unittest包,则将把test目录中,文件名包含test的 Python 脚本文件,视为需要测试的文件。配置完成后,可能需要重新启动 VSCode。
搜索测试文件的方式与扩展和工具相关
需要指出,具体搜索测试文件的方式,可能与扩展和工具相关。
比如,使用unittest测试时,可能不会搜索子文件夹中的测试文件。如果test文件夹的子文件夹math包含了test_math.py,那么test_math.py不会被识别为测试文件。
在 Visual Studio Code 中查看检测到的测试
一旦在测试文件中检测到可用的测试,他们将以树形结构展示在测试面板中。如果你不习惯树形结构,那么可切换至列表结构。列表结构会以更加简洁的方式列出所有测试。
在测试面板点击任意测试项,或通过其上下文菜单项转到测试,可跳转到该测试的代码。
测试面板未列出某些测试?
测试面板未列出某些测试的原因是多种的,但你可以尝试点击面板刷新测试按钮,让 VSCode 重新收集测试。
在 Visual Studio Code 中运行与调试测试
要运行或调试测试,可在测试面板中,点击与目标测试相关的运行测试按钮或调试测试按钮,或在选中目标测试的情况下,按Enter键,或在编辑器中点击装订线中的,与测试代码对应的运行测试按钮或相关的上下文菜单项。
对于树形结构,你可以点击某个层级对应的运行测试按钮,或调试测试按钮,这将运行或调试该层级包含的所有测试。
点击测试面板的重新运行上次运行按钮,可重新运行上一批次的测试。点击测试面板的重新运行失败的测试按钮,可重新运行结果为失败的测试。
筛选 Visual Studio Code 测试
在编写大量测试之后,你可以通过筛选器筛选需要显示的测试。比如,输入与测试相关的关键字,或点击更多筛选器…按钮,选择需要显示的测试类型。
在 Visual Studio Code 中查看测试结果
测试完成后,测试的结果将显示在测试面板、装订线、测试结果面板等位置。
如果测试结果为失败,那么相关的失败信息还将以标签的形式,显示在编辑器对应测试代码处。点击标签或失败的测试,可查看关于失败的详细信息。
测试结果面板会显示不同批次的测试结果,这包括最后一批测试,和之前的测试。
点击测试结果面板中的某条测试,可在左边显示其测试的输出信息。点击某批次测试旁边的显示结果输出按钮,可显示该批次测试的输出信息。点击测试面板的显示输出按钮,可显示最后一批测试的输出信息。
通过测试结果面板中,某条测试或某批次测试对应的按钮或菜单项,可重新运行或调试他们,或跳转至对应的测试代码处。
点击测试结果面板的清除所有结果按钮,或点击测试面板中的清除所有结果菜单项,可清除所有批次的测试结果。
在 Visual Studio Code 中查看测试的代码覆盖率
如何查看 VSCode 测试的代码覆盖率视频演示 YouTube如何查看 VSCode 测试的代码覆盖率视频演示 Bilibili
测试的代码覆盖率用于表示测试到底覆盖了多少代码,可用于衡量测试的完整性。
在测试面板的运行测试按钮旁边,一般可以看到运行覆盖率测试按钮,点击该按钮即可运行测试,并计算本批测试的代码覆盖率。
这里,我们选择运行测试test_add,并计算其代码覆盖率。测试完毕后,可在测试覆盖率或资源管理器中,查看具体的覆盖率。
代码覆盖率一般以代码文件或文件夹为单位,而具体参与计算的文件和文件夹,以及覆盖率的计算方式和结果,由相关扩展和工具决定。当你使用不同的扩展或工具时,同一种测试的代码覆盖率可能是不同的。
覆盖率可能会分为语句、分支或更多统计方式。以文件为例,语句覆盖率,是指该文件中被测试执行的语句,占该文件所有语句的比例。分支覆盖率,是指该文件中被测试执行的分支,占该文件所有分支的比例。
在测试面板的测试覆盖率或资源管理器中,点击某个被计算的代码文件,即可查看被覆盖的代码有哪些,VSCode 会以不同的颜色,来表示被覆盖或未被覆盖的代码。
这里,我们点击脚本文件my.py,装订线显示为墨绿色的为被覆盖的代码,显示为红色的为未被覆盖的代码,当然,具体颜色与你所使用的 VSCode 主题有关。
讲解视频
如何使用 VSCode 测试功能·YouTube如何使用 VSCode 测试功能·Bilibili
如何查看 VSCode 测试的代码覆盖率·YouTube如何查看 VSCode 测试的代码覆盖率·Bilibili