mcpField
U
unit-test-generator

unit-test-generator

github.com/jackyst0テスト・品質66581 回インストール1 日前に更新
リポジトリ

unit-test-generator について

unit-test-generatorは、ソースコードからテストを作成する開発者向けのスキルです。動作や境界条件を分析し、対応言語のテストフレームワークを選んでレポート形式で出力します。

主な機能

  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

詳細

Unit Test Generator

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

ソースコードに基づいて単体テストを自動生成します。複数の言語とテストフレームワークに対応しています。

When to Use

次の操作をユーザーから依頼されたときに、このスキルを使用します:

  • 単体テストを生成する / 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)
テストカバレッジの説明
  • ✅ 正の数の通常の除算
  • ✅ 負の数の除算
  • ✅ ゼロ除算の例外
  • ✅ 分子がゼロの場合
  • ✅ 浮動小数点数の精度

コメント