test-auto について
テストピラミッドに沿って、単体テストからエンドツーエンドテストまでのテストスイートを作成するスキルです。テスト追加やリファクタリング前の準備、テストパイプライン構築に取り組む開発者向けです。
主な機能
- 01単体・統合・E2Eテストの計画
- 02Arrange-Act-Assert形式のテスト構成
- 03モック、スタブ、テストデータファクトリー
- 04カバレッジ設定とCI連携
活用シーン
- 01新しいモジュールへのテスト追加
- 02リファクタリング前のカバレッジ向上
- 03プロジェクトのテストとCIパイプライン構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ htlin222/ dotfiles --skill test-autoインストール後、Claude Code で/test-autoを入力して読み込まれたか確認します。
詳細
テスト自動化
テストピラミッドに従って、包括的なテストスイートを作成します。
使用する場面
- 新しいコードのテストを設定するとき
- ユーザーから「テストを追加して」または「カバレッジを改善して」と依頼されたとき
- リファクタリングの前(先にテストを追加します)
- CI/CD テストパイプラインを実装するとき
テストピラミッド
/\ E2E (few, critical paths)
/ \ Integration (moderate)
/____\ Unit (many, fast)
テスト構成
単体テスト
- 個々の関数やメソッドをテストします
- 外部依存関係をモックします
- 実行時間を短くします(テストあたり 100ms 未満)
- 高いカバレッジを目指します(80% 超)
統合テスト
- コンポーネント間の連携をテストします
- テスト用データベースやコンテナを使用します
- 実行時間は中程度です
- 重要な連携をカバーします
E2E テスト
- ユーザーの一連の操作をテストします
- Playwright/Cypress を使用します
- 実行時間が最も長くなります
- 正常系のパスのみをカバーします
テストパターン
// Arrange-Act-Assert
describe("UserService", () => {
it("should create user with valid data", async () => {
// Arrange
const userData = { name: "Test", email: "[email protected]" };
// Act
const result = await userService.create(userData);
// Assert
expect(result.id).toBeDefined();
expect(result.name).toBe("Test");
});
});
出力
- わかりやすい命名のテストファイル
- モック/スタブの実装
- テストデータファクトリー
- カバレッジ設定
- CI パイプラインとの統合
例
入力: 「auth モジュールのテストを追加して」 アクション: auth モジュールを分析し、関数の単体テストとフローの統合テストを作成します
入力: 「このプロジェクトのテストを設定して」 アクション: フレームワークを検出し、テストランナーを設定して、テスト例を作成し、CI 設定を追加します
コメント
Markdown 対応