Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Unit Test Creator (LLM)New to Visual Studio Code? Get it now.
Unit Test Creator (LLM)

Unit Test Creator (LLM)

Aaron Zhu

|
7 installs
| (0) | Free
Generates unit test files for TypeScript using a backend LLM service.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AI Test Generator for VS Code

Version on Marketplace

Installs

Ratings

License: MIT

借助人工智能的强大力量,为你的 TypeScript 开发自动生成 Jest 单元测试,大幅提升开发效率!

AI Test Generator 是一款 VS Code 扩展,旨在通过智能生成 TypeScript 代码的初始测试框架,为你节省时间和精力。它连接到专用的后端服务,利用先进的大语言模型(LLMs)分析你的代码并生成相关的 Jest 测试用例。


目录

功能特性

工作原理

先决条件

安装与设置

1. 安装扩展

2. 获取服务 API 密钥

3. 配置扩展

使用方法

生成测试

查看生成的测试

示例

扩展设置

故障排除

已知问题与限制

贡献指南

支持与联系

隐私政策

许可证


功能特性

✨ AI 驱动的测试生成:利用最先进的大语言模型创建有意义且具备上下文感知能力的单元测试。

🎯 专注 Jest 框架:生成专门为 Jest 测试框架构建的测试文件。

🧠 上下文感知导入:智能尝试确定生成的测试中源文件的正确相对导入路径。

🖱️ 无缝集成:通过 VS Code 编辑器上下文菜单或文件资源管理器中的右键单击即可轻松生成测试。

⚙️ 高度可配置:通过自定义测试文件后缀、测试目录名称和后端服务详细信息,使扩展符合你的需求。

🚀 提升生产力:减少样板代码编写,快速启动测试流程,让你能够专注于更复杂的测试逻辑。

工作原理

在 VS Code 中选择一个 TypeScript 文件。

扩展将文件内容和一些上下文信息(如文件名和建议的导入路径)发送到安全的 AI Test Generator 后端服务。

我们的后端服务使用其配置的 LLM API 密钥(例如,适用于阿里云通义千问等模型)与大语言模型进行通信。

LLM 分析你的代码并生成 Jest 单元测试代码。

后端服务将生成的测试代码发送回扩展。

扩展在你的项目中创建一个新的测试文件(或提示覆盖现有文件)。

先决条件

需要 有效的互联网连接,以便与 AI Test Generator 后端服务通信。

需要 用户服务 API 密钥,用于对后端服务的请求进行身份验证。

安装与设置

1. 安装扩展

在 Visual Studio Code 市场中搜索 “AI Test Generator”,然后点击 安装。

2. 获取服务 API 密钥

要使用此扩展,你需要 AI Test Generator 后端服务的 API 密钥。

➡️ 在此获取你的 API 密钥 ⬅️

(请替换为服务实际的注册 / API 密钥生成页面链接)

3. 配置扩展

安装并获取 API 密钥后,你需要在 VS Code 中配置扩展:

打开 VS Code 设置:

通过菜单:文件 > 首选项 > 设置(Windows/Linux)或Code > 首选项 > 设置(macOS)。

通过快捷键:Ctrl+,(Windows/Linux)或Cmd+,(macOS)。

在搜索栏中,输入aiJestTestGenerator或 “AI Jest 测试生成器设置”。

在 “AI Jest 测试生成器设置” 部分配置以下设置:

用户服务Api密钥** (aiJestTestGenerator.userServiceApiKey)**:

必填。输入你在步骤 2 中获得的 API 密钥。

服务Url** (aiJestTestGenerator.serviceUrl)**:

必填。AI Test Generator 后端服务 API 的 URL。

默认值为http://localhost:8080/api/generate-tests。你很可能需要将其更改为服务的生产环境 URL,例如https://api.your-service-website.com/api/generate-tests。请查看我们的服务文档以获取正确的 URL。

测试文件后缀** (aiJestTestGenerator.testFileSuffix)**:

自定义生成的测试文件的后缀。

默认值:.test.ts

测试目录名称** (aiJestTestGenerator.testDirName)**:

放置测试文件的目录名称(相对于源文件)。

默认值:__tests__

自定义提示前缀** (aiJestTestGenerator.customPromptPrefix)**:

(高级)允许修改通过后端发送到大语言模型的基础指令。使用时请谨慎操作。

使用方法

生成测试

配置完成后,生成测试非常简单:

从活动编辑器生成:

打开你想要测试的 TypeScript(.ts或.tsx)文件。

在编辑器中的任意位置右键单击。

从上下文菜单中选择 “AI:为活动文件生成单元测试”。

从文件资源管理器生成:

在 VS Code 文件资源管理器中,右键单击 TypeScript(.ts或.tsx)文件。

从上下文菜单中选择 “AI:生成单元测试”。

扩展将随后与后端服务通信,并会显示一个通知以展示进度。如果测试文件已存在,系统将提示你是否覆盖它。

查看生成的测试

人工智能生成的测试是一个强大的起点,但始终需要由开发人员进行查看和可能的优化:

验证正确性:确保测试准确反映代码的预期行为。

检查覆盖率:虽然目标是实现全面覆盖,但仍需确保所有关键路径都经过测试。

改进断言:LLM 可能会生成基本的断言。可考虑添加更具体或更可靠的断言。

重构以提高可读性:如有必要,调整生成的代码以使其更清晰易懂。

示例

源文件 (src/utils.ts):

export const multiply = (a: number, b: number): number => {

  return a \* b;

};

export function divide(a: number, b: number): number {

  if (b === 0) {

    throw new Error('除数不能为0');

  }

  return a / b;

}

可能生成的测试文件 (src/__tests__/utils.test.ts):

import { multiply, divide } from '../utils';

describe('数学运算函数', () => {

  describe('multiply函数', () => {

    it('应该正确计算两个正数的乘积', () => {

      expect(multiply(3, 4)).toBe(12);

    });

    it('应该正确计算正数与负数的乘积', () => {

      expect(multiply(5, -2)).toBe(-10);

    });

  });

  describe('divide函数', () => {

    it('应该正确计算两个数的除法', () => {

      expect(divide(10, 2)).toBe(5);

    });

    it('当除数为0时应该抛出错误', () => {

      expect(() => divide(10, 0)).toThrow('除数不能为0');

    });

  });

});

扩展设置

可配置设置摘要:

设置项 描述 默认值
aiJestTestGenerator.userServiceApiKey 必填。你用于后端服务的 API 密钥。 ""
aiJestTestGenerator.serviceUrl 必填。后端服务 API 的 URL。 http://localhost:8080/api/generate-tests
aiJestTestGenerator.testFileSuffix 生成的测试文件的后缀。 .test.ts
aiJestTestGenerator.testDirName 测试文件所在目录的名称(相对于源文件)。 __tests__
aiJestTestGenerator.customPromptPrefix (高级)发送到大语言模型的基础指令。 (请查看设置中的默认值)

故障排除

“用户服务 API 密钥未配置”:确保已在扩展设置中输入 API 密钥。

“后端服务 URL 未配置”:确保在扩展设置中正确设置服务 URL,并指向活动的后端服务。

“后端错误 (401):未经授权”:这意味着你提供的 API 密钥无效或未被后端服务识别。请仔细检查密钥或联系服务支持人员。

“后端错误 (50x)”:这通常表示后端服务本身存在问题。请检查服务状态或联系支持人员。

未生成代码或文件为空:

LLM 可能无法理解代码或无法为其生成测试。

源代码可能过于复杂或过于简短。

在调用 LLM 过程中可能出现问题。请检查后端服务日志。

导入路径不正确:尽管扩展会尝试建议正确的路径,但复杂的项目结构可能需要手动调整生成文件中的导入路径。

已知问题与限制

生成的测试的质量和完整性取决于底层 LLM 的能力以及输入代码的复杂性。

生成的测试始终需要人工查看和可能的修改。

目前主要设计用于为 TypeScript 项目生成 Jest 测试。

大型文件可能会超出处理限制或导致超时。

(添加任何特定于你的实现或 LLM 提供程序的已知问题)

贡献指南

(可选:如果项目是开源的)

我们欢迎贡献!如果你想参与贡献,请按照以下步骤进行:

派生存储库:[你的 GitHub 存储库链接]

创建你的功能分支 (git checkout -b feature/新功能名称)。

提交你的更改 (git commit -m '添加新功能描述')。

将更改推送到分支 (git push origin feature/新功能名称)。

打开拉取请求。

请确保你的代码符合我们的编码标准,并在适当的地方包含测试。

支持与联系

错误报告与功能请求:请在我们的 GitHub 存储库中打开问题:[你的 GitHub 存储库问题页面链接]

服务与 API 密钥支持:有关后端服务、API 密钥或订阅的问题,请访问 [你的服务支持 / 联系页面链接或电子邮件]。

隐私政策

你的隐私对我们至关重要。本节概述了使用 AI Test Generator 扩展时数据的处理方式。

传输到后端的数据:当你启动文件的测试生成时,以下数据将发送到我们的安全后端服务:

所选 TypeScript 源文件的完整内容。

源文件的文件名。

供 LLM 参考的建议相对导入路径。

你的userServiceApiKey(用于身份验证和服务使用情况跟踪)。

后端对数据的使用:

源代码和上下文信息仅用于构建大语言模型(LLM)的提示。

LLM 处理此提示以生成单元测试代码。

我们不会在服务器上存储你的源代码或生成的测试代码,仅在满足请求所需的短暂处理时间内以及短期操作日志记录 / 调试期间(例如,最长 X 天 - 请具体如实说明)保留。

第三方 LLM 服务:我们的后端服务与第三方 LLM 提供商(如阿里云通义千问)进行通信。你的代码作为提示的一部分,将由这些服务根据其各自的隐私政策和服务条款进行处理。我们致力于使用具有强大数据安全实践的知名 LLM 提供商。

匿名化 / 聚合:我们可能会收集匿名化和聚合的使用统计信息,以改进扩展和服务(例如,请求数量、成功率、使用的 LLM 模型)。这些数据不会包含你的源代码或除服务运营所需之外的任何个人身份信息。

安全性:我们实施合理的安全措施来保护传输到后端服务并由其处理的数据。然而,互联网传输或电子存储的任何方法都无法做到 100% 安全。

如需全面了解我们的数据处理实践,请查看我们完整的 隐私政策文档链接。

使用本扩展即表示你确认并同意这些数据处理实践。

许可证

本 VS Code 扩展根据 MIT 许可证 获得许可。

(如果声明此许可证,请确保存储库中有 LICENSE.md 文件,或选择其他许可证)


由 [Aaron Zhu / edumanage.top] 用心开发

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft