VSCode 如何通过快捷键快速生成测试用例 VSCode 快速生成测试用例的快捷键创意用法​

创建代码片段:通过 ctrl+shift+p 打开“configure user snippets”,选择对应语言或创建全局片段文件,在json中定义包含 prefix、body、description 的片段,利用 $1、$2 等制表符停靠点实现光标快速跳转;2. 使用代码片段:在测试文件中输入 prefix(如 testdesc)后按 tab 键,即可展开预设的测试结构,通过 tab 键在占位符间切换填写内容;3. 管理代码片段:定期更新片段文件以适应项目变化,如调整 mock 语法或测试框架差异,保持模板的实用性与一致性;4. 结合插件提升效率:使用 jest runner、vitest 或 test explorer ui 等插件实现测试的快速运行与状态查看,配合 new file by template 等插件实现测试文件的模板化创建;5. 配置自定义快捷键:在 keybindings.json 中为插入片段命令绑定快捷键,如将 ctrl+shift+t 关联到插入 testdesc 片段,实现一键生成测试结构;6. 利用任务自动化流程:通过 tasks.json 配置运行当前测试文件的任务,并绑定快捷键,实现编写后快速验证,形成高效闭环。该方法通过模板预设与自动化操作,显著提升测试用例编写效率,最终实现类“一键生成”的流畅体验。

VSCode 如何通过快捷键快速生成测试用例 VSCode 快速生成测试用例的快捷键创意用法​

vscode本身并没有一个“一键生成”测试用例的万能快捷键。更准确地说,我们是通过结合代码片段(Snippets)、特定插件以及一些个人习惯的配置,来大幅提升编写测试用例的效率,让它感觉就像是“快捷生成”一样。核心在于预设好模板,然后用最少的操作将其调出,这比从零开始敲代码要快得多。

解决方案

要实现VSCode中测试用例的快速“生成”,最直接且高度可定制的方法是利用用户代码片段(User Snippets)。这就像是为你常用的代码结构预设好了一个个模板,输入简短的关键词就能展开成一大段代码。对我来说,这是提升测试编写效率的关键。

具体操作流程是这样的:

  1. 打开用户代码片段配置: 在VSCode中,按下

    Ctrl+Shift+P

    (或

    Cmd+Shift+P

    在macos上),输入“Configure User Snippets”,然后选择你希望创建片段的语言,比如“JavaScript.json”或“typescriptreact.json”。如果你希望这个片段在所有语言中都可用,可以选择“New Global Snippets file…”。

  2. 创建或编辑代码片段: 打开对应的JSON文件后,你会看到一个示例结构。你可以添加自己的片段。 以一个Jest测试框架的简单测试块为例,我通常会这样设置:

    {     "Jest Describe Block": {         "prefix": "testdesc",         "body": [             "describe('${1:组件或模块名}', () => {",             "  // beforeEach 或其他设置",             "  beforeEach(() => {",             "    $0", // 最终光标位置             "  });",             "",             "  it('应该 ${2:测试行为描述}', () => {",             "    expect(${3:实际值}).${4:toBe}(${5:期望值});",             "  });",             "});"         ],         "description": "快速生成一个Jest的describe测试块,包含一个it块和beforeEach。"     },     "Jest It Block": {         "prefix": "testit",         "body": [             "it('应该 ${1:测试行为描述}', () => {",             "  expect(${2:实际值}).${3:toBe}(${4:期望值});",             "});"         ],         "description": "快速生成一个Jest的it测试块。"     } }
    • prefix

      : 这是你在编辑器中输入后,VSCode会提示你展开片段的关键词。我习惯用

      testdesc

      testit

      ,简短好记。

    • body

      : 这是一个字符串数组,每一项代表一行代码。

    • $1

      ,

      $2

      ,

      $3

      : 这些是“制表符停靠点”(tab stops)。当你展开片段后,光标会依次跳转到这些位置,方便你快速填写内容。

      $0

      是你完成所有输入后,光标最终会停留的位置。

    • ${1:placeholder}

      : 带有占位符的制表符停靠点,展开后会显示

      placeholder

      ,选中状态,可以直接输入覆盖。

    • description

      : 对这个片段的简短描述,方便你在VSCode的提示列表中识别。

  3. 使用片段: 在你的测试文件中,输入你设置的

    prefix

    (比如

    testdesc

    ),VSCode会弹出提示。选中它或直接按

    Tab

    键,预设的代码结构就会展开。然后你就可以通过

    Tab

    键在各个占位符之间快速跳转,填写具体的测试逻辑。这种感觉,真的就像是“生成”了一样,效率提升肉眼可见。

如何创建和管理VSCode中的代码片段以提高测试用例编写效率?

创建和管理VSCode中的代码片段,是提高测试用例编写效率的核心。它不像某些ide那样有专门的“测试生成器”,但这种灵活的自定义方式,我觉得反而更符合个人习惯和项目特点。

要创建,正如前面提到的,通过

Ctrl+Shift+P

搜索“Configure User Snippets”,选择或新建一个针对特定语言(比如

typescriptreact.json

用于React组件的测试)或全局的片段文件。我个人偏好针对语言来配置,这样能保持片段的上下文相关性。

片段文件的本质是一个JSON对象,每个键值对代表一个代码片段。键是片段的名称(比如“Jest Describe Block”),值是一个包含

prefix

body

description

的对象。

  • prefix

    :这是你触发片段的“咒语”。我通常会选择一些简短、不易冲突且有意义的词,比如

    itblock

    descblock

    mockfunc

    等。保持一致性,能让你在肌肉记忆层面更快地调用它们。

  • body

    :这是片段的核心,一个字符串数组,每行代码一个字符串。这里你可以尽情发挥,构建你常用的测试结构,包括

    describe

    it

    、`

    expect

    beforeEach

    afterEach

    ,甚至是一些常用的模拟函数模板

    • 制表符停靠点(Tab Stops):这是提高效率的秘密武器。
      $1

      ,

      $2

      … 定义了光标会依次跳转的位置,而

      $0

      是最终光标停留的位置。你可以用

      ${1:placeholder}

      来提供默认的提示文本,这在我需要快速填写测试描述或变量名时特别有用。

  • description

    :一个简短的说明,当你输入

    prefix

    时,VSCode会显示这个描述,帮你快速识别正确的片段。

管理这些片段,其实就是管理这些JSON文件。你可以把它们视为你的“代码模板库”。随着项目和个人习惯的变化,我时不时会回去调整这些片段,让它们更贴合当前的工作流。例如,如果团队开始大量使用

vi.mock

而不是

jest.mock

,我就会更新我的mock片段。这种迭代和优化,能让你的“生成”体验越来越顺滑。

除了代码片段,还有哪些VSCode插件能辅助测试用例的快速生成或管理?

虽然代码片段是我的首选,但VSCode生态里确实有一些插件,能在不同层面辅助测试用例的编写和管理,虽然它们不直接“生成”代码,但能极大提升整体的测试工作流效率,间接达到类似“快速”的效果。

一个很重要的类别是测试运行器(Test Runner)插件。比如:

  • Jest Runner:如果你用Jest,这个插件能让你直接在代码旁边点击运行单个测试、测试套件,或者调试。它不会生成代码,但它提供了一个非常快速的反馈循环。写完一个
    it

    块,点一下就能看结果,这种即时反馈感,会让你觉得测试编写过程更加流畅,甚至有点像“实时生成并验证”。

  • Vitest:对于使用Vitest的开发者,也有类似的插件。它们通常会在测试文件旁边显示通过/失败状态,甚至集成到源代码中显示覆盖率。
  • Test Explorer UI:这是一个通用的测试框架接口,许多测试框架的插件都会集成到它上面。它提供了一个统一的侧边栏视图,展示所有测试,方便你管理和运行。虽然不生成,但它让测试的组织和执行变得非常直观。

另一个方向是文件模板或脚手架相关的插件,尽管不专门针对测试用例:

  • New File by Template:这类插件可以让你预设一些文件模板,比如一个标准的
    index.test.ts

    文件结构。当你创建新文件时,可以选择模板,这样文件创建出来就已经有了基本的导入语句、

    describe

    块等。这比手动创建文件再插入片段要多一步,但对于新文件的初始化来说,它确实是一种“生成”方式。

还有一些插件,虽然不是直接生成,但能通过智能提示和自动补全来加速编写:

  • 像TypeScript Language Server本身就能提供强大的类型推断和自动补全,这在编写测试断言时尤为关键。比如输入
    expect(foo).toB

    就能自动补全

    toBe()

    。这种减少击键次数的能力,也是一种效率上的“生成”。

  • 一些特定框架的插件,比如Cypress的插件,可能会提供一些命令或片段,用于快速插入常见的Cypress命令。

总的来说,这些插件更多是在“管理”和“优化”测试流程,让编写、运行、调试测试变得更高效。它们和代码片段是互补的,代码片段负责“内部”的快速填充,而插件则优化“外部”的流程和反馈。

如何利用VSCode的自定义快捷键和任务,进一步优化测试用例的编写流程?

光有代码片段还不够,如果能给它们配上专属的快捷键,那才叫真正的“快捷生成”。此外,VSCode的任务功能,也能把一些重复性的操作自动化,让整个测试编写流程更加顺畅。

自定义快捷键(Keybindings): VSCode的自定义快捷键功能非常强大。你可以为几乎任何命令、包括插入特定的代码片段,设置一个快捷键。

  1. 打开快捷键设置:

    Ctrl+K Ctrl+S

    (或

    Cmd+K Cmd+S

    macos上),会打开

    keybindings.json

    文件。

  2. 添加自定义快捷键: 在这个文件中,你可以添加自己的规则。例如,我想让

    Ctrl+Shift+T

    快速插入我上面定义的

    Jest Describe Block

    片段:

    [     {         "key": "ctrl+shift+t",         "command": "editor.action.insertSnippet",         "when": "editorTextFocus && editorLangId =~ /^(javascript|typescript|javascriptreact|typescriptreact)$/",         "args": {             "snippet": "testdesc" // 对应你的片段前缀         }     },     {         "key": "ctrl+alt+i",         "command": "editor.action.insertSnippet",         "when": "editorTextFocus && editorLangId =~ /^(javascript|typescript|javascriptreact|typescriptreact)$/",         "args": {             "snippet": "testit" // 对应你的it片段前缀         }     } ]
    • key

      : 你想要设置的快捷键组合。

    • command

      : 要执行的命令。

      editor.action.insertSnippet

      就是插入代码片段的命令。

    • when

      : 一个上下文条件,表示这个快捷键何时生效。这里我限制它只在文本编辑器有焦点且语言ID是JavaScript或TypeScript相关时才生效,避免冲突。

    • args

      : 传递给命令的参数。

      "snippet": "testdesc"

      告诉VSCode插入哪个

      prefix

      的片段。

通过这种方式,你不再需要输入

testdesc

再按

Tab

,直接一个快捷键组合,整个测试块就出来了。这种感觉,才真正符合“快捷生成”的预期。对我来说,这是最高效的用法。

利用任务(Tasks): VSCode的任务功能通常用于自动化构建、测试运行等。虽然它不直接生成代码,但它可以优化测试用例编写后的流程,比如快速运行测试、格式化代码等,从而让整个工作流更流畅。

你可以配置一个任务来运行当前打开的测试文件:

  1. 配置任务:

    Ctrl+Shift+P

    ,搜索“Tasks: Configure Task”,然后选择“Create tasks.json file from template” -> “Others”。

  2. 添加自定义任务:

    {     "version": "2.0.0",     "tasks": [         {             "label": "Run Current Test File",             "type": "shell",             "command": "npm test ${fileBasename}", // 假设你用npm test,并传入当前文件名             "group": {                 "kind": "test",                 "isDefault": true             },             "problemMatcher": [],             "presentation": {                 "reveal": "always",                 "panel": "new"             },             "options": {                 "cwd": "${workspaceFolder}"             }         }     ] }
    • command

      : 这里我用

      npm test ${fileBasename}

      ,它会运行当前打开文件的测试。如果你用Jest,可能是

      npx jest ${fileBasename}

    • label

      : 任务的名称。

  3. 运行任务:

    Ctrl+Shift+P

    ,搜索“Tasks: Run Task”,选择你的任务。或者,你也可以为这个任务绑定一个快捷键,比如

    Ctrl+Shift+R

    来运行当前测试文件。

虽然任务本身不生成测试用例,但它能让你在写完一段测试后,迅速验证其正确性,这种快速的反馈循环,也是提升效率、让整个编写过程更“顺滑”的关键。想象一下,写完

it

块,一个快捷键,测试结果立现,这种连贯性,会让编写测试的体验好上不少。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享