unit-test-generator について
unit-test-generatorは、ソースコードからテストを作成する開発者向けのスキルです。動作や境界条件を分析し、対応言語のテストフレームワークを選んでレポート形式で出力します。
主な機能
- 01言語とコード構造の識別
- 02入出力と動作の分析
- 03境界条件と例外のテスト
- 04複数言語とテストフレームワークに対応
- 05テストレポートの作成
活用シーン
- 01関数のユニットテスト生成
- 02クラスのテストケース作成
- 03例外と空入力のテスト追加
- 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
- コードを特定する - プログラミング言語とコード構造を特定します
- 機能を分析する - 関数やメソッドの入力、出力、動作を理解します
- 境界を特定する - 境界条件とエッジケースを特定します
- フレームワークを選択する - 言語に応じて適切なテストフレームワークを選択します
- テストを生成する - 網羅的なテストケースを作成します
対応言語とフレームワーク / Supported Languages
| 言語 | テストフレームワーク |
|---|---|
| Python | pytest, unittest |
| JavaScript/TypeScript | Jest, Mocha, Vitest |
| Java | JUnit, TestNG |
| Go | testing (built-in) |
| Rust | cargo 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 対応