name: go-test-runner description: Go バックエンドのテストを実行し、簡潔なサマリーを返却する。「go test」「テスト」「テスト実行」「カバレッジ」などのキーワードで自動起動。失敗テストの詳細のみ報告し、フルログは出力しない。隔離コンテキストで実行。
Go テストランナー
Go バックエンドのテストを実行する。結果はサマリーのみ返却(合格/不合格数、失敗テスト詳細)。
ワークフロー
1. プロジェクト検出
以下の優先順位で Go プロジェクトを検出:
# 1. 環境変数 GO_BACKEND_DIR が設定されている場合
if [[ -n "$GO_BACKEND_DIR" && -f "$GO_BACKEND_DIR/go.mod" ]]; then
# GO_BACKEND_DIR を使用
fi
# 2. カレントディレクトリに go.mod がある場合
ls go.mod 2>/dev/null
# 3. 一般的なサブディレクトリ(backend, server, api, go)
for dir in backend server api go; do
ls "$dir/go.mod" 2>/dev/null
done
# 4. 再帰検索(深さ2まで)
find . -maxdepth 2 -name "go.mod" -type f | head -1
2. テスト実行
cd <backend_dir>
# 基本テスト
go test ./...
# カバレッジ付き(ユーザーが要求した場合)
go test -cover -coverprofile=coverage.out ./...
# 詳細出力(ユーザーが要求した場合)
go test -v ./...
# 特定パッケージ(ユーザーが指定した場合)
go test <package_path>
3. カバレッジレポート(要求時)
go tool cover -html=coverage.out -o coverage.html
出力フォーマット
全テストパス:
## Tests Passed
- Package: <target>
- Duration: <seconds>
一部失敗:
## Tests Failed
### Failed Tests
#### <package>/<TestFunction>
- File: <path>:<line>
- Expected: <value>
- Actual: <value>
### Fix Suggestions
<recommendations>
カバレッジ付き:
## Tests Passed (with Coverage)
- Package: <target>
- Coverage: <percentage>
- Report: coverage.html
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
GO_BACKEND_DIR |
バックエンドディレクトリ | 自動検出 |
ルール
- フルテストログは絶対に出力しない
- 失敗テストのみアクション可能な詳細付きで報告
- カバレッジレポート生成はユーザーが要求した場合のみ
- テスト対象パッケージはデフォルト
./...(全パッケージ)