AB
AiBoss站
教程

Qodo

教程

在 VS Code 中安装 Qodo 并生成单元测试与代码评审

面向 VS Code 用户的 Qodo 配置教程:从扩展市场安装、账号登录,到用 /test 生成单元测试、用 /review 做提交前自审,并配置模型、测试框架与本地 LLM。

Qodo(原名 CodiumAI)是一个把测试生成与代码评审结合起来的 AI 代码质量平台。它最广为人知的能力是在拉取请求上做自动评审,而它的 VS Code 扩展把同一套能力搬进了本地编辑器:选中一个函数就能生成单元测试,选中一段代码就能拿到评审意见、解释和重构建议,不必切到浏览器,也不必等 CI 流水线跑完。这篇教程讲的是在 VS Code 里把 Qodo 装好、登录、跑通第一次测试生成,并把常用设置调成适合自己工作流的形态。如果你更习惯在网页端处理,也可以先了解 Qodo 的整体能力,再回到编辑器里落地。

适合读这篇的人:日常大部分时间待在 VS Code 里、希望把代码质量检查前移到提交之前的前后端开发者;正在给团队评估 AI 代码评审工具、想先在本机试跑的技术负责人;以及从旧版 CodiumAI 扩展迁移过来、不确定该装哪个包的老用户。整个安装过程不需要 API 密钥、不需要 Docker、不需要敲终端命令,全部在 VS Code 的图形界面里完成。

准备工作

动手之前先确认下面几项都满足,否则后面某一步会卡住:

  • VS Code 版本:需要 1.80 或更高版本,macOS、Windows、Linux 均可。
  • 网络连接:首次安装需要联网;Qodo 的 AI 能力默认走云端托管的模型,所以后续使用也需要保持联网(除非你按后文配置本地 LLM)。
  • 登录账号:GitHub、Google 或任意邮箱账号都可以注册登录,不需要企业订阅。
  • 一个已打开的项目:安装完成后要拿真实代码验证功能,所以最好在 VS Code 里打开一个包含源码的工程。

另外有一条容易忽略的迁移事项:如果你以前装过 CodiumAI 扩展,品牌更名为 Qodo 之后,应当更新到 Qodo 品牌的最新扩展才能继续获得支持和新功能。VS Code 有时会通过自动更新把旧扩展迁移过去,但保险起见,装完后到已安装扩展列表里核对一遍。如果列表里同时存在 CodiumAI 和 Qodo 两个扩展,卸载 CodiumAI 那个,只保留 Qodo。

操作步骤

第一步:安装 Qodo 扩展

扩展直接在 VS Code 扩展市场里获取,不需要去别处下载安装包。

  1. 打开 VS Code。
  2. 按 Ctrl+Shift+X(Windows / Linux)或 Cmd+Shift+X(macOS)打开扩展视图。
  3. 在扩展面板顶部的搜索框里输入 Qodo。
  4. 找到发布者为 Qodo 的那个扩展,它可能带有「formerly CodiumAI」的副标题。
  5. 点击 Install 按钮。

安装通常在 10 到 20 秒内完成,具体取决于网络速度。装好后,VS Code 左侧活动栏会出现 Qodo 图标,点开就是 Qodo 面板,所有功能都从这里进入。

如果你更习惯命令行,也可以用下面这条命令安装:

code --install-extension Qodo.qodo-vscode

第二步:登录账号

扩展装好之后必须登录才能激活,因为 Qodo 要靠账号来管理额度、把使用记录关联到你的账户。

  1. 点击左侧活动栏的 Qodo 图标。
  2. 面板会显示登录提示,点击 Sign In。
  3. 选择登录方式:GitHub(如果以后打算用 Qodo 的 PR 评审功能,推荐这个)、Google(用 Google 账号快速登录)、Email(用任意邮箱注册一个独立的 Qodo 账号)。
  4. 浏览器会弹出一个授权窗口,在其中完成登录。
  5. 回到 VS Code,Qodo 面板此时会显示账号信息和剩余额度。

免费 Developer 计划在注册账号时自动激活,不需要绑定信用卡。该计划每月提供一定数量的 IDE 与 CLI 交互额度,以及一定数量的 PR 评审次数(如果你之后把 Qodo 接到 Git 仓库)。具体的额度数字与计划内容会随时间调整,请以 Qodo 官网当前公布的信息为准。

登录完成后,面板上会显示当前额度余额、正在使用的 AI 模型,以及测试生成、代码对话、代码评审这几个主要功能的快捷入口。

第三步:生成第一批单元测试

测试生成是 Qodo 的招牌功能,也是验证扩展是否正常工作的最快方式。

  1. 在项目里打开任意一个至少包含一个函数或方法的源文件。
  2. 把光标放进想测试的函数内部,或者直接选中整个函数。
  3. 打开 Qodo 对话面板,输入 /test;也可以在编辑器里右键,从上下文菜单选择 Qodo 的测试生成选项。
  4. Qodo 会分析函数的行为、输入类型、条件分支和错误路径。
  5. 几秒之后,一整套单元测试就生成出来了。

生成的测试通常覆盖这几类场景:

  • 正常路径:用合法输入验证函数按预期返回。
  • 边界情况:null 值、空字符串、边界数值、空数组等。
  • 错误场景:非法输入、缺失参数、异常处理。
  • 类型变化:函数可能接收到的不同输入类型。

Qodo 会识别项目已有的测试框架,并按对应风格生成测试。项目用 pytest 就产出 pytest 风格的测试,用 Jest 就产出 Jest 测试。支持的框架包括 pytest、unittest、Jest、Vitest、Mocha、JUnit 4、JUnit 5、Go 的 testing 包、NUnit、xUnit 和 RSpec。

举个例子,假设源文件里有这样一个工具函数:

def calculate_discount(price, percentage):
    if price < 0:
        raise ValueError("Price cannot be negative")
    if percentage < 0 or percentage > 100:
        raise ValueError("Percentage must be between 0 and 100")
    return price * (1 - percentage / 100)

Qodo 可能生成如下测试:

from your_module import calculate_discount

def test_calculate_discount_standard():
    assert calculate_discount(100, 10) == 90.0

def test_calculate_discount_zero_percentage():
    assert calculate_discount(100, 0) == 100.0

def test_calculate_discount_full_percentage():
    assert calculate_discount(100, 100) == 0.0

def test_calculate_discount_negative_price():
    with pytest.raises(ValueError, match="Price cannot be negative"):
        calculate_discount(-10, 10)

def test_calculate_discount_percentage_over_100():
    with pytest.raises(ValueError, match="Percentage must be between 0 and 100"):
        calculate_discount(100, 110)

def test_calculate_discount_negative_percentage():
    with pytest.raises(ValueError, match="Percentage must be between 0 and 100"):
        calculate_discount(100, -5)

可以看到,除了正常路径,两个 ValueError 分支都被单独覆盖到了,这正是手写测试时最容易漏掉的部分。

额度方面:每次测试生成请求消耗 1 个额度。免费计划每月的额度可以支撑对大约两百多个函数生成测试,具体数字以官网当前信息为准。额度用完后需要升级到付费计划。

第四步:使用对话面板里的其他命令

除了生成测试,Qodo 侧边栏的对话面板还提供代码评审、解释和重构能力。用法统一:先在编辑器里选中要分析的代码,再在 Qodo 对话面板里输入命令。

命令作用
/test为选中的函数生成单元测试
/review对选中代码做评审,给出改进建议
/explain详细解释选中代码做了什么
/improve给出选中代码的重构建议
/docstring为选中的函数生成文档注释

除了斜杠命令,也可以直接用自然语言在对话面板里提问,Qodo 会结合代码上下文回答。

/review 值得单独说一句:它适合在开拉取请求之前做自审。它会检查潜在的 bug、安全问题、性能反模式以及可读性改进点,效果类似 Qodo 在 PR 上做的自动评审,但发生在代码推上去之前,改起来成本更低。

额度消耗与所用模型有关:标准模型每次请求消耗 1 个额度,Claude Opus 这类高级模型每次请求消耗 5 个额度。所以日常小改动用标准模型,遇到需要深度分析的问题再切高级模型,是比较经济的用法。

第五步:调整扩展设置

按 Ctrl+,(macOS 为 Cmd+,)打开 VS Code 设置,搜索 Qodo 就能看到全部可配置项。以下几项最值得先看:

默认 AI 模型:决定 Qodo 用哪个模型生成回答。可选 GPT-4o(速度与质量较均衡)、Claude 3.5 Sonnet(推理能力较强)、DeepSeek-R1 等。高级模型输出质量更高,但每次请求消耗的额度也更多。建议先用默认模型,确实需要更深分析时再切换。

测试生成偏好:可以配置目标测试框架、测试文件的命名约定、生成的测试里是否包含文档注释。如果 Qodo 没能正确识别你的测试框架,就在这里显式指定。

本地 LLM 支持:如果所在组织要求代码不能离开本机,可以通过 Ollama 开启本地 LLM 模式,把所有 AI 处理都路由到本地托管的模型,而不是走 Qodo 的云端 API。配置方式是:在本机安装 Ollama,下载一个受支持的模型,然后在扩展设置里把 Qodo 指向本地的 Ollama 端点。

遥测:控制扩展是否向 Qodo 发送使用数据。如果组织政策有要求,可以在设置面板里完全关闭。

键盘快捷键:按 Ctrl+K Ctrl+S(macOS 为 Cmd+K Cmd+S)打开快捷键编辑器,搜索 Qodo 可以看到所有可用命令。常配的几个是:为选中函数生成测试、打开 Qodo 对话面板、对当前文件执行代码评审。

一个完整示例

下面把前面的步骤串成一次从零到跑通的最小流程,假设你手上有一个 Python 项目,里面有一个待测试的函数。

1. 安装并登录。在扩展视图搜索 Qodo,点击 Install。装完后点活动栏的 Qodo 图标,选择 GitHub 登录,浏览器授权后回到 VS Code,面板显示额度余额即表示登录成功。

2. 打开待测文件。在资源管理器里打开 discount.py,内容就是前面那个 calculate_discount 函数。注意函数里已经带了显式的异常分支,这类代码最能体现生成测试的价值。

3. 生成测试。把光标放进 calculate_discount 函数体内,打开 Qodo 对话面板输入 /test 并回车。等待几秒,面板里会出现一组 pytest 风格的测试用例,覆盖正常折扣、0% 折扣、100% 折扣,以及价格为负、百分比超过 100、百分比为负这三种异常。

4. 保存并运行。把生成的测试保存为项目测试目录下的文件,例如 tests/test_discount.py,然后在终端运行:

pytest tests/test_discount.py -v

如果全部通过,说明扩展的安装、登录、模型调用、框架识别这一整条链路都是通的。

5. 做一次提交前自审。在同一个文件里选中整个函数,在 Qodo 面板输入 /review。它会返回一份评审意见,指出潜在问题与改进方向。逐条判断是否采纳,改完再提交。

6. 补文档。如果这个函数是给其他模块调用的公共接口,再选中它输入 /docstring,让 Qodo 生成文档注释,省去手写参数说明的时间。

这套流程跑通之后,日常开发中的用法基本就是重复第 3 到第 6 步:写函数、生成测试、自审、补注释,全部在编辑器内完成,不需要切换到浏览器或等待 CI。

注意事项

额度是按请求计费的,不是按代码行数。每次测试生成消耗 1 个额度;对话请求按模型区分,标准模型 1 个、高级模型 5 个。免费计划每月有固定额度,用完后需要付费。具体额度、计划价格与模型清单请以 Qodo 官网当前信息为准,不要按本文里的数字做预算。

生成的测试需要人工过一遍。Qodo 会覆盖正常路径、边界和异常分支,但生成结果不等于可以直接合并。断言是否符合业务语义、mock 是否合理、测试命名是否清晰,都要自己判断。把生成结果当作起点而不是终点。

函数签名越明确,输出质量越高。Qodo 需要理解函数的输入类型和返回值才能写出好测试。Python 用类型注解,TypeScript 用类型标注,JavaScript 用 JSDoc 注释。像 def process_order(order: Order, discount: float) -> Receipt 这样的签名,比 def process_order(order, discount) 能给到多得多的上下文。

函数职责要单一。只做一件事的函数,生成的测试质量明显好于承担多重职责的大函数。如果发现生成的测试很浅、漏掉了重要场景,先考虑把函数拆小,而不是反复重试生成。

旧扩展要清理。从 CodiumAI 迁移过来的用户,务必确认已安装扩展列表里只有 Qodo 品牌的那一个。两个扩展并存可能导致功能冲突或行为异常。

本地 LLM 模式需要额外准备。开启本地 LLM 意味着要自己安装 Ollama、下载模型并维护端点,输出质量与云端模型可能存在差异。只有在代码不能出本机的合规要求下才建议走这条路。

云端模式依赖网络。默认配置下 AI 处理在云端完成,断网时测试生成、评审、对话这些功能都不可用。需要离线工作时,只能依赖本地 LLM 模式。