URLhttps://learnscript.net/zh/vscode/testing/
    复制链接转到说明  示例

    Visual Studio Code 测试使用和设置说明

    我被代码海扁署名-非商业-禁演绎
    阅读 6:46·字数 2033·发布 

    Visual Studio Code 测试

    在 Visual Studio Code 中进行测试,通常需要安装对应的语言扩展,以及测试工具。以 Python 为例,除了安装扩展 Python,还需要 Python 包unittestpytest

    如需查找与测试相关的扩展,可以在扩展面板中按类别筛选(在扩展面板的搜索栏输入@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 中查看测试的代码覆盖率

    测试的代码覆盖率用于表示测试到底覆盖了多少代码,可用于衡量测试的完整性。

    测试面板运行测试按钮旁边,一般可以看到运行覆盖率测试按钮,点击该按钮即可运行测试,并计算本批测试的代码覆盖率。

    这里,我们选择运行测试test_add,并计算其代码覆盖率。测试完毕后,可在测试覆盖率资源管理器中,查看具体的覆盖率。

    代码覆盖率一般以代码文件或文件夹为单位,而具体参与计算的文件和文件夹,以及覆盖率的计算方式和结果,由相关扩展和工具决定。当你使用不同的扩展或工具时,同一种测试的代码覆盖率可能是不同的。

    覆盖率可能会分为语句、分支或更多统计方式。以文件为例,语句覆盖率,是指该文件中被测试执行的语句,占该文件所有语句的比例。分支覆盖率,是指该文件中被测试执行的分支,占该文件所有分支的比例。

    测试面板测试覆盖率资源管理器中,点击某个被计算的代码文件,即可查看被覆盖的代码有哪些,VSCode 会以不同的颜色,来表示被覆盖或未被覆盖的代码。

    这里,我们点击脚本文件my.py,装订线显示为墨绿色的为被覆盖的代码,显示为红色的为未被覆盖的代码,当然,具体颜色与你所使用的 VSCode 主题有关。

    讲解视频

    如何使用 VSCode 测试功能·YouTube如何使用 VSCode 测试功能·Bilibili
    如何查看 VSCode 测试的代码覆盖率·YouTube如何查看 VSCode 测试的代码覆盖率·Bilibili