mcpField
U
unit-test-generator

unit-test-generator

github.com/jackyst0测试与质量66581 次安装1 天前更新
代码仓库

关于 unit-test-generator

unit-test-generator 是根据源代码编写单元测试的 skill,适用于需要为函数或类补充测试的开发者。它分析代码行为和边界情况,并按语言选择列出的测试框架。

主要功能

  1. 01识别语言与代码结构
  2. 02分析输入、输出和行为
  3. 03覆盖边界及异常情况
  4. 04支持多种语言和测试框架
  5. 05按模板生成测试报告

适用场景

  1. 01为函数生成单元测试
  2. 02为类创建测试用例
  3. 03补充异常和空输入测试
  4. 04改进代码测试覆盖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackyst0/awesome-agent-skills --skill unit-test-generator

安装后在 Claude Code 中输入/unit-test-generator确认已加载。

附带文件templates/test-report.md

详细介绍

来自项目 README

Unit Test Generator

根据源代码自动生成单元测试,支持多种语言和测试框架。

Automatically generate unit tests based on source code, supporting multiple languages and testing frameworks.

When to Use

当用户请求以下操作时使用此 skill:

  • 生成单元测试 / Generate unit tests
  • 为函数/类编写测试 / Write tests for functions/classes
  • 创建测试用例 / Create test cases
  • 提高代码覆盖率 / Improve code coverage

Instructions

分析步骤 / Analysis Steps
  1. 识别代码 - 确定编程语言和代码结构
  2. 分析功能 - 理解函数/方法的输入、输出和行为
  3. 确定边界 - 识别边界条件和边缘情况
  4. 选择框架 - 根据语言选择合适的测试框架
  5. 生成测试 - 编写全面的测试用例
支持的语言和框架 / Supported Languages
语言测试框架
Pythonpytest, unittest
JavaScript/TypeScriptJest, Mocha, Vitest
JavaJUnit, TestNG
Gotesting (built-in)
Rustcargo test (built-in)
测试类型 / Test Types
  • 正常路径测试 - 验证预期行为
  • 边界条件测试 - 测试边界值
  • 异常处理测试 - 验证错误处理
  • 空值/空输入测试 - 处理空值情况
输出格式 / Output Format

使用 templates/test-report.md 模板格式化输出。

Use the templates/test-report.md template to format output.

## 单元测试生成报告 / Unit Test Generation Report

### 分析概述 / Analysis Summary
[代码分析总结]

### 生成的测试 / Generated Tests
[测试代码]

### 测试覆盖说明 / Coverage Notes
- 覆盖的场景
- 建议补充的测试

Examples

输入 / Input
def divide(a: float, b: float) -> float:
    if b == 0:
        raise ValueError("Cannot divide by zero")
    return a / b
输出 / Output

单元测试生成报告

分析概述

divide 函数执行除法运算,包含除零检查。需要测试正常除法、除零异常、边界值等情况。

生成的测试
import pytest
from your_module import divide

class TestDivide:
    """Tests for the divide function."""

    def test_divide_positive_numbers(self):
        """Test division of positive numbers."""
        assert divide(10, 2) == 5.0
        assert divide(7, 2) == 3.5

    def test_divide_negative_numbers(self):
        """Test division with negative numbers."""
        assert divide(-10, 2) == -5.0
        assert divide(10, -2) == -5.0
        assert divide(-10, -2) == 5.0

    def test_divide_by_zero_raises_error(self):
        """Test that dividing by zero raises ValueError."""
        with pytest.raises(ValueError, match="Cannot divide by zero"):
            divide(10, 0)

    def test_divide_zero_numerator(self):
        """Test division when numerator is zero."""
        assert divide(0, 5) == 0.0

    def test_divide_float_precision(self):
        """Test division with floating point numbers."""
        assert divide(1, 3) == pytest.approx(0.333333, rel=1e-5)
测试覆盖说明
  • ✅ 正常正数除法
  • ✅ 负数除法
  • ✅ 除零异常
  • ✅ 分子为零
  • ✅ 浮点精度

评论

支持 Markdown