@sk8metal/michi-cli 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -847
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +379 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/ai-tools.md +311 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +756 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +543 -0
- package/package.json +1 -1
- package/scripts/phase-runner.ts +1 -1
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/codex/AGENTS.override.md +1 -1
- package/templates/codex/rules/README.md +2 -2
- package/templates/cursor/commands/michi/spec-tasks.md +117 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
# テスト戦略
|
|
2
|
-
|
|
3
|
-
このドキュメントでは、michiを使用したプロジェクトでの総合的なテスト戦略について説明します。
|
|
4
|
-
|
|
5
|
-
## michiのテスト方針
|
|
6
|
-
|
|
7
|
-
michiは、テスト駆動開発(TDD)と段階的なテスト実行(Phase A/B)を組み合わせたテスト戦略を採用しています。
|
|
8
|
-
|
|
9
|
-
### 基本原則
|
|
10
|
-
|
|
11
|
-
1. **テストファーストアプローチ**: コードを書く前にテストを書く(TDD)
|
|
12
|
-
2. **段階的テスト実行**: PR前(Phase A)とリリース前(Phase B)で異なるテストを実行
|
|
13
|
-
3. **自動化の推進**: Phase Aは完全自動化、Phase Bは計画的な手動実行
|
|
14
|
-
4. **マスタテスト管理**: テストは常に最新の仕様を反映
|
|
15
|
-
|
|
16
|
-
## テスト実行の2つのフェーズ
|
|
17
|
-
|
|
18
|
-
| フェーズ | タイミング | 実行方式 | テストタイプ |
|
|
19
|
-
|---------|----------|---------|------------|
|
|
20
|
-
| **Phase A** | PR作成前 | CI/CD自動実行 | 単体テスト、Lint、ビルド |
|
|
21
|
-
| **Phase B** | リリース準備時 | 手動実行 | 統合テスト、E2E、パフォーマンス、セキュリティ |
|
|
22
|
-
|
|
23
|
-
詳細は [テスト実行フロー](./testing/test-execution-flow.md) を参照してください。
|
|
24
|
-
|
|
25
|
-
## テスト計画から実行までの流れ
|
|
26
|
-
|
|
27
|
-
```text
|
|
28
|
-
Phase 0.3: テストタイプ選択
|
|
29
|
-
↓
|
|
30
|
-
Phase 0.4: テスト仕様書の作成
|
|
31
|
-
↓
|
|
32
|
-
Phase 0.5: タスク分割 (spec-tasks)
|
|
33
|
-
↓
|
|
34
|
-
Phase 0.6: タスクのJIRA同期
|
|
35
|
-
↓
|
|
36
|
-
Phase 1: 環境構築・基盤整備
|
|
37
|
-
├─ テスト環境の準備
|
|
38
|
-
├─ テストデータの準備
|
|
39
|
-
└─ テストディレクトリ構造の作成
|
|
40
|
-
↓
|
|
41
|
-
Phase 2: TDD実装(テストと実装を同時進行)
|
|
42
|
-
↓
|
|
43
|
-
Phase A: PR前の自動テスト(CI/CD)
|
|
44
|
-
├─ 単体テスト
|
|
45
|
-
├─ Lint
|
|
46
|
-
└─ ビルド
|
|
47
|
-
↓
|
|
48
|
-
[PRマージ]
|
|
49
|
-
↓
|
|
50
|
-
Phase 3: 追加の品質保証(PRマージ後)
|
|
51
|
-
├─ 静的解析
|
|
52
|
-
├─ セキュリティスキャン
|
|
53
|
-
└─ カバレッジ確認
|
|
54
|
-
↓
|
|
55
|
-
Phase B: リリース準備時の手動テスト
|
|
56
|
-
├─ 統合テスト(推奨)
|
|
57
|
-
├─ E2Eテスト(推奨)
|
|
58
|
-
├─ パフォーマンステスト(任意)
|
|
59
|
-
└─ セキュリティテスト(任意)
|
|
60
|
-
↓
|
|
61
|
-
Phase 4-5: リリース準備・実行
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### 各フェーズの詳細ドキュメント
|
|
65
|
-
|
|
66
|
-
- **Phase 0.3〜Phase 1(テスト計画と環境整備)**: [テスト計画フロー](./testing/test-planning-flow.md)
|
|
67
|
-
- **Phase 2(TDD実装)**: [TDDサイクル](./testing/tdd-cycle.md)
|
|
68
|
-
- **Phase A/B実行**: [テスト実行フロー](./testing/test-execution-flow.md)
|
|
69
|
-
- **Phase 3(追加QA)・テスト失敗時**: [テスト失敗時の対応](./testing/test-failure-handling.md)
|
|
70
|
-
|
|
71
|
-
## テストタイプと選択基準
|
|
72
|
-
|
|
73
|
-
| テストタイプ | 必須/任意 | 実行フェーズ | 選択基準 |
|
|
74
|
-
|------------|---------|------------|---------|
|
|
75
|
-
| 単体テスト | **必須** | Phase A | すべてのプロジェクト |
|
|
76
|
-
| 統合テスト | **推奨** | Phase B | 複数コンポーネントが連携 |
|
|
77
|
-
| E2Eテスト | **推奨** | Phase B | UIを持つアプリケーション |
|
|
78
|
-
| パフォーマンステスト | 任意 | Phase B | 高負荷・レスポンスタイム重要 |
|
|
79
|
-
| セキュリティテスト | 任意 | Phase B | 機密データ・外部公開API |
|
|
80
|
-
|
|
81
|
-
### テスト仕様書テンプレート
|
|
82
|
-
|
|
83
|
-
各テストタイプの仕様書テンプレートを用意しています:
|
|
84
|
-
|
|
85
|
-
- [単体テスト仕様書テンプレート](./templates/test-specs/unit-test-spec-template.md)
|
|
86
|
-
- [統合テスト仕様書テンプレート](./templates/test-specs/integration-test-spec-template.md)
|
|
87
|
-
- [E2Eテスト仕様書テンプレート](./templates/test-specs/e2e-test-spec-template.md)
|
|
88
|
-
- [パフォーマンステスト仕様書テンプレート](./templates/test-specs/performance-test-spec-template.md)
|
|
89
|
-
- [セキュリティテスト仕様書テンプレート](./templates/test-specs/security-test-spec-template.md)
|
|
90
|
-
|
|
91
|
-
## 対応言語とツール
|
|
92
|
-
|
|
93
|
-
### Node.js / TypeScript
|
|
94
|
-
- テストフレームワーク: Vitest
|
|
95
|
-
- Lint: ESLint
|
|
96
|
-
- ビルド: tsc
|
|
97
|
-
|
|
98
|
-
### Java
|
|
99
|
-
- テストフレームワーク: JUnit 5
|
|
100
|
-
- ビルドツール: Gradle
|
|
101
|
-
- Lint: Checkstyle
|
|
102
|
-
|
|
103
|
-
### PHP
|
|
104
|
-
- テストフレームワーク: PHPUnit
|
|
105
|
-
- Lint: PHPStan
|
|
106
|
-
- パッケージ管理: Composer
|
|
107
|
-
|
|
108
|
-
## CI/CD連携
|
|
109
|
-
|
|
110
|
-
Phase Aのテスト(単体テスト、Lint、ビルド)は、以下のCI/CDツールで自動実行されます:
|
|
111
|
-
|
|
112
|
-
- GitHub Actions
|
|
113
|
-
- Screwdriver
|
|
114
|
-
|
|
115
|
-
詳細は [CI/CD設定](./release/ci-setup.md) を参照してください。
|
|
116
|
-
|
|
117
|
-
## リリースフロー
|
|
118
|
-
|
|
119
|
-
```text
|
|
120
|
-
[開発完了]
|
|
121
|
-
↓
|
|
122
|
-
Phase A: 単体テスト + Lint + ビルド(自動)
|
|
123
|
-
↓
|
|
124
|
-
[PR作成・レビュー・マージ]
|
|
125
|
-
↓
|
|
126
|
-
Phase B: 統合 + E2E + その他(手動)
|
|
127
|
-
↓
|
|
128
|
-
[リリースタグ作成]
|
|
129
|
-
↓
|
|
130
|
-
CI/CD実行(自動)
|
|
131
|
-
↓
|
|
132
|
-
[GitHub Release作成]
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
詳細は [リリースフロー](./release/release-flow.md) を参照してください。
|
|
136
|
-
|
|
137
|
-
## クイックスタートガイド
|
|
138
|
-
|
|
139
|
-
### 1. 新規プロジェクトでmichiを導入する場合
|
|
140
|
-
|
|
141
|
-
1. [テスト計画フロー](./testing/test-planning-flow.md) でテストタイプを選択
|
|
142
|
-
2. テスト仕様書テンプレートを使用してテスト計画を作成
|
|
143
|
-
3. [TDDサイクル](./testing/tdd-cycle.md) に従ってテストコードを実装
|
|
144
|
-
4. [CI/CD設定](./release/ci-setup.md) でPhase Aを自動化
|
|
145
|
-
5. [テスト実行フロー](./testing/test-execution-flow.md) に従って開発
|
|
146
|
-
|
|
147
|
-
### 2. 既存プロジェクトにmichiを導入する場合
|
|
148
|
-
|
|
149
|
-
1. 既存のテストをmichiのディレクトリ構造に移行
|
|
150
|
-
2. Phase A(単体テスト)から段階的に自動化
|
|
151
|
-
3. CI/CD設定を追加
|
|
152
|
-
4. Phase B(統合テスト等)を計画的に追加
|
|
153
|
-
|
|
154
|
-
## よくある質問
|
|
155
|
-
|
|
156
|
-
### Q1: Phase Bのテストは毎回実行する必要がありますか?
|
|
157
|
-
|
|
158
|
-
A: Phase Bはリリース前のみ実行します。毎PRで実行する必要はありません。
|
|
159
|
-
|
|
160
|
-
### Q2: テストカバレッジの目標は?
|
|
161
|
-
|
|
162
|
-
A: 単体テストで95%以上を推奨します。最低でも80%以上を目指してください。
|
|
163
|
-
|
|
164
|
-
### Q3: パフォーマンステストやセキュリティテストは必須ですか?
|
|
165
|
-
|
|
166
|
-
A: 必須ではありません。プロジェクトの要件に応じて選択してください。
|
|
167
|
-
|
|
168
|
-
### Q4: Phase Bで問題が見つかったらどうすれば?
|
|
169
|
-
|
|
170
|
-
A: バグ修正のPRを作成し、Phase Aを通過させてからマージ、Phase Bを再実行します。
|
|
171
|
-
|
|
172
|
-
## 関連ドキュメント
|
|
173
|
-
|
|
174
|
-
### テスト関連
|
|
175
|
-
- [テスト計画フロー](./testing/test-planning-flow.md) - Phase 0.3〜Phase 1
|
|
176
|
-
- [TDDサイクル](./testing/tdd-cycle.md) - Phase 2: RED-GREEN-REFACTOR
|
|
177
|
-
- [テスト実行フロー](./testing/test-execution-flow.md) - Phase A/B/3
|
|
178
|
-
- [テスト失敗時の対応](./testing/test-failure-handling.md) - トラブルシューティング
|
|
179
|
-
|
|
180
|
-
### リリース関連
|
|
181
|
-
- [リリースフロー](./release/release-flow.md) - タグ作成からリリースまで
|
|
182
|
-
- [CI/CD設定](./release/ci-setup.md) - GitHub Actions/Screwdriver
|
|
183
|
-
|
|
184
|
-
### テンプレート
|
|
185
|
-
- [テスト仕様書テンプレート](./templates/test-specs/) - 各テストタイプ
|
|
@@ -1,518 +0,0 @@
|
|
|
1
|
-
# 新規実装機能 動作確認手順書
|
|
2
|
-
|
|
3
|
-
このドキュメントでは、新規実装した3つの機能の動作確認手順を説明します。
|
|
4
|
-
|
|
5
|
-
## 📋 目次
|
|
6
|
-
|
|
7
|
-
1. [事前準備](#事前準備)
|
|
8
|
-
2. [機能1: テスト実行とレポート生成](#機能1-テスト実行とレポート生成)
|
|
9
|
-
3. [機能2: リリースノート生成](#機能2-リリースノート生成)
|
|
10
|
-
4. [機能3: Confluence承認状態ポーリング](#機能3-confluence承認状態ポーリング)
|
|
11
|
-
5. [統合テスト: ワークフロー実行](#統合テスト-ワークフロー実行)
|
|
12
|
-
6. [トラブルシューティング](#トラブルシューティング)
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## 事前準備
|
|
17
|
-
|
|
18
|
-
### 1. プロジェクトのビルド
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
npm run build
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### 2. 必要なファイルの確認
|
|
25
|
-
|
|
26
|
-
以下のファイルが存在することを確認してください:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
# プロジェクトメタデータ
|
|
30
|
-
ls -la .kiro/project.json
|
|
31
|
-
|
|
32
|
-
# テスト用の機能仕様(既存)
|
|
33
|
-
ls -la .kiro/specs/health-check-endpoint/
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
もし`.kiro/project.json`が存在しない場合は、以下のコマンドで作成できます:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
cat > .kiro/project.json << 'EOF'
|
|
40
|
-
{
|
|
41
|
-
"projectId": "michi",
|
|
42
|
-
"projectName": "Michi",
|
|
43
|
-
"jiraProjectKey": "MICHI",
|
|
44
|
-
"confluenceLabels": ["michi", "ai-development", "claude-code"],
|
|
45
|
-
"status": "active",
|
|
46
|
-
"team": ["Development Team"],
|
|
47
|
-
"stakeholders": ["Product Team", "Engineering Team"],
|
|
48
|
-
"repository": "https://github.com/sk8metalme/michi",
|
|
49
|
-
"description": "AI駆動開発を支援するプロジェクト管理・ドキュメント管理フレームワーク"
|
|
50
|
-
}
|
|
51
|
-
EOF
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 機能1: テスト実行とレポート生成
|
|
57
|
-
|
|
58
|
-
### 概要
|
|
59
|
-
|
|
60
|
-
プロジェクトの言語を自動検出し、適切なテストコマンドを実行してレポートを生成します。
|
|
61
|
-
|
|
62
|
-
### 動作確認手順
|
|
63
|
-
|
|
64
|
-
#### ステップ1: 単体テストを実行
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
# テスト確認スクリプトを実行
|
|
68
|
-
node dist/scripts/test-new-features.js
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
#### ステップ2: 結果を確認
|
|
72
|
-
|
|
73
|
-
コンソール出力で以下が表示されることを確認:
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
📋 Test 1: テスト実行とレポート生成
|
|
77
|
-
============================================================
|
|
78
|
-
|
|
79
|
-
✅ このプロジェクトでテストを実行します...
|
|
80
|
-
|
|
81
|
-
📊 テスト結果:
|
|
82
|
-
ステータス: ✅ 成功
|
|
83
|
-
言語: Node.js/TypeScript
|
|
84
|
-
コマンド: npm test
|
|
85
|
-
実行時間: X.XX秒
|
|
86
|
-
|
|
87
|
-
📝 レポート生成中...
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### 期待される結果
|
|
91
|
-
|
|
92
|
-
- ✅ テストが正常に実行される
|
|
93
|
-
- ✅ テスト結果がMarkdown形式でフォーマットされる
|
|
94
|
-
- ✅ 実行時間、タイムスタンプが記録される
|
|
95
|
-
|
|
96
|
-
### 個別テスト(オプション)
|
|
97
|
-
|
|
98
|
-
特定の言語でテストしたい場合:
|
|
99
|
-
|
|
100
|
-
```typescript
|
|
101
|
-
// test-runner-example.ts を作成
|
|
102
|
-
import { executeTests, generateTestReport } from './dist/scripts/utils/test-runner.js';
|
|
103
|
-
|
|
104
|
-
async function test() {
|
|
105
|
-
// Node.js/TypeScriptでテスト
|
|
106
|
-
const result = await executeTests('Node.js/TypeScript', process.cwd());
|
|
107
|
-
console.log('Result:', result);
|
|
108
|
-
|
|
109
|
-
// レポート生成
|
|
110
|
-
const report = generateTestReport(result, 'my-feature');
|
|
111
|
-
console.log('Report:', report);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
test();
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
実行:
|
|
118
|
-
```bash
|
|
119
|
-
npx tsx test-runner-example.ts
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## 機能2: リリースノート生成
|
|
125
|
-
|
|
126
|
-
### 概要
|
|
127
|
-
|
|
128
|
-
git logからコミット履歴を取得し、Conventional Commits形式でリリースノートを自動生成します。
|
|
129
|
-
|
|
130
|
-
### 動作確認手順
|
|
131
|
-
|
|
132
|
-
#### ステップ1: 単体テストを実行
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
# テスト確認スクリプトを実行
|
|
136
|
-
node dist/scripts/test-new-features.js
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
#### ステップ2: 結果を確認
|
|
140
|
-
|
|
141
|
-
コンソール出力で以下が表示されることを確認:
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
📋 Test 2: リリースノート生成
|
|
145
|
-
============================================================
|
|
146
|
-
|
|
147
|
-
✅ 最新10コミットを取得します...
|
|
148
|
-
|
|
149
|
-
📊 取得したコミット数: 10
|
|
150
|
-
|
|
151
|
-
最初の3コミット:
|
|
152
|
-
1. [feat] Claude Code/Claude AgentにkiroコードレビューとPR確認を追加
|
|
153
|
-
2. [feat] kiro:spec-implにコードレビューとPR作成確認を追加
|
|
154
|
-
3. [feat] Kiro spec-impl統合ワークフローと関連機能を追加
|
|
155
|
-
|
|
156
|
-
📝 リリースノート生成中...
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### 期待される結果
|
|
160
|
-
|
|
161
|
-
- ✅ コミット履歴が正常に取得される
|
|
162
|
-
- ✅ Conventional Commits形式が正しく解析される
|
|
163
|
-
- ✅ Features, Bug Fixes, Other Changesに分類される
|
|
164
|
-
- ✅ Markdown形式でリリースノートが生成される
|
|
165
|
-
|
|
166
|
-
### 個別テスト(オプション)
|
|
167
|
-
|
|
168
|
-
カスタムバージョンでリリースノートを生成:
|
|
169
|
-
|
|
170
|
-
```typescript
|
|
171
|
-
// release-notes-example.ts を作成
|
|
172
|
-
import { createReleaseNotes } from './dist/scripts/utils/release-notes-generator.js';
|
|
173
|
-
import { writeFileSync } from 'fs';
|
|
174
|
-
|
|
175
|
-
async function test() {
|
|
176
|
-
// v2.0.0のリリースノートを生成
|
|
177
|
-
const notes = await createReleaseNotes('v2.0.0', 'HEAD~20', process.cwd());
|
|
178
|
-
|
|
179
|
-
// ファイルに保存
|
|
180
|
-
writeFileSync('RELEASE_NOTES_v2.0.0.md', notes, 'utf-8');
|
|
181
|
-
console.log('✅ リリースノート生成完了: RELEASE_NOTES_v2.0.0.md');
|
|
182
|
-
console.log(notes);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
test();
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
実行:
|
|
189
|
-
```bash
|
|
190
|
-
npx tsx release-notes-example.ts
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## 機能3: Confluence承認状態ポーリング
|
|
196
|
-
|
|
197
|
-
### 概要
|
|
198
|
-
|
|
199
|
-
Confluence APIを使用してページの承認状態を確認します。
|
|
200
|
-
|
|
201
|
-
### 事前準備: 環境変数の設定
|
|
202
|
-
|
|
203
|
-
Confluence APIを使用するため、以下の環境変数を設定してください:
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
# .envファイルに追加
|
|
207
|
-
cat >> .env << 'EOF'
|
|
208
|
-
|
|
209
|
-
# Confluence承認状態テスト用
|
|
210
|
-
ATLASSIAN_URL=https://your-domain.atlassian.net
|
|
211
|
-
ATLASSIAN_EMAIL=your-email@example.com
|
|
212
|
-
ATLASSIAN_API_TOKEN=your-api-token
|
|
213
|
-
CONFLUENCE_TEST_PAGE_ID=123456
|
|
214
|
-
EOF
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
**API Token取得方法:**
|
|
218
|
-
1. Atlassianアカウントにログイン
|
|
219
|
-
2. https://id.atlassian.com/manage-profile/security/api-tokens にアクセス
|
|
220
|
-
3. 「Create API token」をクリック
|
|
221
|
-
4. トークンをコピーして`ATLASSIAN_API_TOKEN`に設定
|
|
222
|
-
|
|
223
|
-
**ページIDの確認方法:**
|
|
224
|
-
1. Confluenceページを開く
|
|
225
|
-
2. URLから`pageId=XXXXXX`の部分を確認
|
|
226
|
-
- 例: `https://your-domain.atlassian.net/wiki/spaces/SPACE/pages/123456/PageTitle`
|
|
227
|
-
- この場合、ページIDは`123456`
|
|
228
|
-
|
|
229
|
-
### 動作確認手順
|
|
230
|
-
|
|
231
|
-
#### ステップ1: 環境変数が設定されていることを確認
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
echo "URL: $ATLASSIAN_URL"
|
|
235
|
-
echo "Email: $ATLASSIAN_EMAIL"
|
|
236
|
-
echo "Page ID: $CONFLUENCE_TEST_PAGE_ID"
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
#### ステップ2: テストを実行
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
node dist/scripts/test-new-features.js
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
#### ステップ3: 結果を確認
|
|
246
|
-
|
|
247
|
-
環境変数が設定されている場合:
|
|
248
|
-
|
|
249
|
-
```
|
|
250
|
-
📋 Test 3: Confluence承認状態確認
|
|
251
|
-
============================================================
|
|
252
|
-
|
|
253
|
-
✅ Confluence承認状態を確認します...
|
|
254
|
-
|
|
255
|
-
📊 承認状態:
|
|
256
|
-
ページID: 123456
|
|
257
|
-
ページタイトル: Test Page
|
|
258
|
-
承認済み: ✅ はい / ❌ いいえ
|
|
259
|
-
承認者: user1, user2
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
環境変数が未設定の場合:
|
|
263
|
-
|
|
264
|
-
```
|
|
265
|
-
⚠️ Confluence認証情報が設定されていません
|
|
266
|
-
以下の環境変数を設定すると、実際のAPIテストが可能です:
|
|
267
|
-
- ATLASSIAN_URL
|
|
268
|
-
- ATLASSIAN_EMAIL
|
|
269
|
-
- ATLASSIAN_API_TOKEN
|
|
270
|
-
- CONFLUENCE_TEST_PAGE_ID (テスト用ページID)
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### 期待される結果
|
|
274
|
-
|
|
275
|
-
- ✅ Confluence APIに正常に接続できる
|
|
276
|
-
- ✅ ページ情報が取得できる
|
|
277
|
-
- ✅ 承認状態が正しく判定される
|
|
278
|
-
|
|
279
|
-
### 個別テスト(オプション)
|
|
280
|
-
|
|
281
|
-
```typescript
|
|
282
|
-
// confluence-approval-example.ts を作成
|
|
283
|
-
import { getApprovalStatus } from './dist/scripts/utils/confluence-approval.js';
|
|
284
|
-
|
|
285
|
-
async function test() {
|
|
286
|
-
const config = {
|
|
287
|
-
url: process.env.ATLASSIAN_URL!,
|
|
288
|
-
email: process.env.ATLASSIAN_EMAIL!,
|
|
289
|
-
apiToken: process.env.ATLASSIAN_API_TOKEN!
|
|
290
|
-
};
|
|
291
|
-
|
|
292
|
-
const pageId = process.env.CONFLUENCE_TEST_PAGE_ID!;
|
|
293
|
-
|
|
294
|
-
const status = await getApprovalStatus(pageId, config);
|
|
295
|
-
console.log('承認状態:', status);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
test();
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
実行:
|
|
302
|
-
```bash
|
|
303
|
-
npx tsx confluence-approval-example.ts
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
---
|
|
307
|
-
|
|
308
|
-
## 統合テスト: ワークフロー実行
|
|
309
|
-
|
|
310
|
-
### 概要
|
|
311
|
-
|
|
312
|
-
全機能を統合したワークフローとして実行します。
|
|
313
|
-
|
|
314
|
-
### 動作確認手順
|
|
315
|
-
|
|
316
|
-
#### ステップ1: testとreleaseステージのみを実行
|
|
317
|
-
|
|
318
|
-
```bash
|
|
319
|
-
npx tsx scripts/test-workflow-stages.ts --feature health-check-endpoint
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
#### ステップ2: 結果を確認
|
|
323
|
-
|
|
324
|
-
```
|
|
325
|
-
🧪 新規実装ステージのテスト
|
|
326
|
-
Feature: health-check-endpoint
|
|
327
|
-
Stages: test → release
|
|
328
|
-
|
|
329
|
-
🚀 Starting workflow for: health-check-endpoint
|
|
330
|
-
Stages: test → release
|
|
331
|
-
Project: Michi
|
|
332
|
-
|
|
333
|
-
📋 Stage: test
|
|
334
|
-
Test phase - execute tests
|
|
335
|
-
Detected language: Node.js/TypeScript (medium confidence)
|
|
336
|
-
Running tests...
|
|
337
|
-
✅ Test report saved: .kiro/specs/health-check-endpoint/test-report.md
|
|
338
|
-
✅ Stage completed: test
|
|
339
|
-
|
|
340
|
-
📋 Stage: release
|
|
341
|
-
Release preparation
|
|
342
|
-
Generating release notes for v1.0.0...
|
|
343
|
-
✅ Release notes saved: .kiro/specs/health-check-endpoint/release-notes-v1.0.0.md
|
|
344
|
-
✅ Stage completed: release
|
|
345
|
-
|
|
346
|
-
🎉 Workflow completed successfully!
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
#### ステップ3: 生成されたファイルを確認
|
|
350
|
-
|
|
351
|
-
```bash
|
|
352
|
-
# テストレポートを表示
|
|
353
|
-
cat .kiro/specs/health-check-endpoint/test-report.md
|
|
354
|
-
|
|
355
|
-
# リリースノートを表示
|
|
356
|
-
cat .kiro/specs/health-check-endpoint/release-notes-v1.0.0.md
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
### 期待される結果
|
|
360
|
-
|
|
361
|
-
- ✅ testステージが正常に完了する
|
|
362
|
-
- ✅ releaseステージが正常に完了する
|
|
363
|
-
- ✅ テストレポートが生成される
|
|
364
|
-
- ✅ リリースノートが生成される
|
|
365
|
-
|
|
366
|
-
### カスタムバージョンでテスト
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
# バージョンを指定
|
|
370
|
-
RELEASE_VERSION=v2.1.0 npx tsx scripts/test-workflow-stages.ts --feature health-check-endpoint
|
|
371
|
-
|
|
372
|
-
# 生成されたファイルを確認
|
|
373
|
-
cat .kiro/specs/health-check-endpoint/release-notes-v2.1.0.md
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
---
|
|
377
|
-
|
|
378
|
-
## トラブルシューティング
|
|
379
|
-
|
|
380
|
-
### Q1. テスト実行が失敗する
|
|
381
|
-
|
|
382
|
-
**症状:**
|
|
383
|
-
```
|
|
384
|
-
❌ Test execution failed: Command failed: npm test
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
**解決方法:**
|
|
388
|
-
1. 依存関係を再インストール
|
|
389
|
-
```bash
|
|
390
|
-
npm clean-install
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
2. ビルドを実行
|
|
394
|
-
```bash
|
|
395
|
-
npm run build
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
3. テストを直接実行して確認
|
|
399
|
-
```bash
|
|
400
|
-
npm test
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
### Q2. リリースノート生成でコミットが見つからない
|
|
406
|
-
|
|
407
|
-
**症状:**
|
|
408
|
-
```
|
|
409
|
-
📊 取得したコミット数: 0
|
|
410
|
-
⚠️ コミットが見つかりませんでした
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
**解決方法:**
|
|
414
|
-
1. gitリポジトリであることを確認
|
|
415
|
-
```bash
|
|
416
|
-
git status
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
2. コミット履歴を確認
|
|
420
|
-
```bash
|
|
421
|
-
git log --oneline | head -10
|
|
422
|
-
```
|
|
423
|
-
|
|
424
|
-
3. 範囲を調整
|
|
425
|
-
```typescript
|
|
426
|
-
// より広い範囲で取得
|
|
427
|
-
const commits = await getCommits('HEAD~50', 'HEAD', process.cwd());
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
### Q3. Confluence API接続エラー
|
|
433
|
-
|
|
434
|
-
**症状:**
|
|
435
|
-
```
|
|
436
|
-
❌ Confluence承認状態確認エラー: Request failed with status code 401
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
**解決方法:**
|
|
440
|
-
1. 環境変数を確認
|
|
441
|
-
```bash
|
|
442
|
-
cat .env | grep ATLASSIAN
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
2. API Tokenを再生成
|
|
446
|
-
- https://id.atlassian.com/manage-profile/security/api-tokens
|
|
447
|
-
|
|
448
|
-
3. 接続テスト
|
|
449
|
-
```bash
|
|
450
|
-
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
|
|
451
|
-
"$ATLASSIAN_URL/wiki/rest/api/content/$CONFLUENCE_TEST_PAGE_ID"
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
---
|
|
455
|
-
|
|
456
|
-
### Q4. ワークフローが途中で停止する
|
|
457
|
-
|
|
458
|
-
**症状:**
|
|
459
|
-
```
|
|
460
|
-
❌ Stage failed: test Command failed: npm test
|
|
461
|
-
```
|
|
462
|
-
|
|
463
|
-
**解決方法:**
|
|
464
|
-
1. ログを確認
|
|
465
|
-
```bash
|
|
466
|
-
# 詳細ログを有効化
|
|
467
|
-
DEBUG=* npx tsx scripts/test-workflow-stages.ts --feature health-check-endpoint
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
2. ステージごとに個別テスト
|
|
471
|
-
```bash
|
|
472
|
-
# テストステージのみ
|
|
473
|
-
node dist/scripts/test-new-features.js
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
3. エラーメッセージを確認して対処
|
|
477
|
-
|
|
478
|
-
---
|
|
479
|
-
|
|
480
|
-
## 📊 チェックリスト
|
|
481
|
-
|
|
482
|
-
動作確認完了の確認に使用してください:
|
|
483
|
-
|
|
484
|
-
### 基本動作
|
|
485
|
-
- [ ] ビルドが成功する(`npm run build`)
|
|
486
|
-
- [ ] 全テストがパスする(`npm test`)
|
|
487
|
-
- [ ] `.kiro/project.json`が存在する
|
|
488
|
-
|
|
489
|
-
### 機能1: テスト実行とレポート生成
|
|
490
|
-
- [ ] テストが正常に実行される
|
|
491
|
-
- [ ] レポートがMarkdown形式で生成される
|
|
492
|
-
- [ ] 実行時間が記録される
|
|
493
|
-
|
|
494
|
-
### 機能2: リリースノート生成
|
|
495
|
-
- [ ] コミット履歴が取得できる
|
|
496
|
-
- [ ] Conventional Commits形式が解析される
|
|
497
|
-
- [ ] リリースノートが生成される
|
|
498
|
-
|
|
499
|
-
### 機能3: Confluence承認状態
|
|
500
|
-
- [ ] 環境変数が設定されている(オプション)
|
|
501
|
-
- [ ] Confluence APIに接続できる(オプション)
|
|
502
|
-
- [ ] 承認状態が取得できる(オプション)
|
|
503
|
-
|
|
504
|
-
### 統合テスト
|
|
505
|
-
- [ ] testステージが成功する
|
|
506
|
-
- [ ] releaseステージが成功する
|
|
507
|
-
- [ ] 生成ファイルが正しい場所に保存される
|
|
508
|
-
|
|
509
|
-
---
|
|
510
|
-
|
|
511
|
-
## 📝 まとめ
|
|
512
|
-
|
|
513
|
-
すべてのチェック項目が完了したら、新規実装機能の動作確認は完了です。
|
|
514
|
-
|
|
515
|
-
ご不明な点がありましたら、以下を確認してください:
|
|
516
|
-
- 実装コード: `scripts/utils/test-runner.ts`, `release-notes-generator.ts`, `confluence-approval.ts`
|
|
517
|
-
- テストコード: `scripts/utils/__tests__/test-runner.test.ts`
|
|
518
|
-
- 統合スクリプト: `scripts/test-new-features.ts`, `scripts/test-workflow-stages.ts`
|