write-bats-test について
setup.sh または context.sh の動作変更時に bats-core テストを追加するスキルです。一時ディレクトリで外部から確認できる仕様を検証し、テストスイート全体を実行します。
主な機能
- 01既存のテスト規約に合わせる
- 02追加・変更された動作をテスト
- 03一時ディレクトリでファイル操作を分離
- 04bats テストスイート全体を実行
活用シーン
- 01setup.sh にフラグを追加
- 02context.sh の出力フィールドを変更
- 03検出処理を更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dailybothq/ deepworkplan-skill --skill write-bats-testインストール後、Claude Code で/write-bats-testを入力して読み込まれたか確認します。
詳細
Bats テストの作成
目標
tests/ にある既存の規約に沿った bats-core テストで、新規または変更されたシェルの動作を検証します。
使用するタイミング
setup.sh または skills/deepworkplan/shared/context.sh に動作(新しいフラグ、新しい検出分岐、新しい出力フィールドなど)を追加または変更した場合に使用します。
手順
- 既存のテストを読んで、スタイルとヘルパー関数に合わせます:
tests/setup-sh.bats、tests/context-sh.bats。 - 新しい動作を検証する
@testケースを追加します。ファイルシステムへの変更がある場合は、使い捨てのHOME/一時ディレクトリを使い、テストスイートが開発者の~/.claudeに触れないようにします。 - 観測可能な契約に対するアサーションを維持します:
context.shが出力する JSON フィールド、setup.shが作成するシンボリックリンク名、終了コード。 bats tests/を実行し、すべて成功するまで繰り返します。
検証
新しいケースを含めて bats tests/ が成功し、テストスイートが一時ディレクトリの外に成果物を残さないことを確認します。
注意事項
テストは bash 3.2 で実行できる必要があります。リファクタリングのたびにテストスイートが頻繁に変更されないよう、内部実装よりも公開契約(フラグ、シンボリックリンク名、JSON キー)のテストを優先してください。
コメント
Markdown 対応