@sk8metal/michi-cli 0.10.1 → 0.12.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 +71 -848
- package/dist/scripts/constants/environments.d.ts +1 -1
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +0 -20
- package/dist/scripts/constants/environments.js.map +1 -1
- 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/dist/scripts/utils/template-finder.d.ts +2 -2
- package/dist/scripts/utils/template-finder.d.ts.map +1 -1
- package/dist/scripts/utils/template-finder.js +3 -8
- package/dist/scripts/utils/template-finder.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +0 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +0 -4
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +6 -30
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +2 -6
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +8 -142
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +350 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -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 +752 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +498 -0
- package/package.json +1 -3
- package/scripts/__tests__/create-project.test.ts +12 -12
- package/scripts/__tests__/setup-existing-project.test.ts +22 -22
- package/scripts/constants/__tests__/environments.test.ts +7 -50
- package/scripts/constants/environments.ts +1 -27
- package/scripts/phase-runner.ts +1 -1
- package/scripts/template/__tests__/renderer.test.ts +21 -21
- 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/scripts/utils/template-finder.ts +5 -11
- 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/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
- package/templates/cline/rules/atlassian-integration.md +0 -36
- package/templates/cline/rules/michi-core.md +0 -56
- package/templates/codex/AGENTS.override.md +0 -277
- package/templates/codex/prompts/confluence-sync.md +0 -177
- package/templates/codex/rules/README.md +0 -210
- package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
- package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
- package/templates/cursor/commands/michi/confluence-sync.md +0 -76
- package/templates/cursor/commands/michi/project-switch.md +0 -69
- package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
- package/templates/cursor/rules/github-ssot.mdc +0 -151
- package/templates/cursor/rules/multi-project.mdc +0 -81
- package/templates/gemini/commands/README.md +0 -41
- package/templates/gemini/rules/GEMINI.md +0 -80
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
# テスト実行フロー
|
|
2
|
-
|
|
3
|
-
このドキュメントでは、michiを使用したプロジェクトでのテスト実行フロー(Phase A/B)について説明します。
|
|
4
|
-
|
|
5
|
-
## テスト実行の2つのフェーズ
|
|
6
|
-
|
|
7
|
-
michiでは、テストを2つのフェーズに分けて実行します:
|
|
8
|
-
|
|
9
|
-
| フェーズ | タイミング | 実行方式 | テストタイプ |
|
|
10
|
-
|---------|----------|---------|------------|
|
|
11
|
-
| **Phase A** | PR作成前 | CI/CD自動実行 | 単体テスト、Lint、ビルド |
|
|
12
|
-
| **Phase B** | リリース準備時 | 手動実行 | 統合テスト、E2E、パフォーマンス、セキュリティ |
|
|
13
|
-
|
|
14
|
-
## Phase A: PR作成前の自動テスト
|
|
15
|
-
|
|
16
|
-
### 目的
|
|
17
|
-
|
|
18
|
-
コード品質の基本的なチェックを自動化し、レビュワーの負担を軽減します。
|
|
19
|
-
|
|
20
|
-
### 実行タイミング
|
|
21
|
-
|
|
22
|
-
- **PRを作成する直前**
|
|
23
|
-
- ローカルでの開発が完了した時点
|
|
24
|
-
- CI/CDが自動的に実行
|
|
25
|
-
|
|
26
|
-
### 実行内容
|
|
27
|
-
|
|
28
|
-
#### 1. 単体テスト(必須)
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# Node.js
|
|
32
|
-
npm test
|
|
33
|
-
|
|
34
|
-
# Java (Gradle)
|
|
35
|
-
./gradlew test
|
|
36
|
-
|
|
37
|
-
# PHP
|
|
38
|
-
composer test
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**合格基準**:
|
|
42
|
-
- すべての単体テストが成功
|
|
43
|
-
- カバレッジ95%以上(推奨)
|
|
44
|
-
|
|
45
|
-
#### 2. Lint(必須)
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
# Node.js
|
|
49
|
-
npm run lint
|
|
50
|
-
|
|
51
|
-
# Java (Gradle)
|
|
52
|
-
./gradlew checkstyleMain
|
|
53
|
-
|
|
54
|
-
# PHP
|
|
55
|
-
composer phpstan
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**合格基準**:
|
|
59
|
-
- Lintエラー: 0件
|
|
60
|
-
- Lint警告: できる限り0件
|
|
61
|
-
|
|
62
|
-
#### 3. ビルド(必須)
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
# Node.js
|
|
66
|
-
npm run build
|
|
67
|
-
|
|
68
|
-
# Java (Gradle)
|
|
69
|
-
./gradlew build
|
|
70
|
-
|
|
71
|
-
# PHP
|
|
72
|
-
composer install --no-dev
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**合格基準**:
|
|
76
|
-
- ビルドエラー: 0件
|
|
77
|
-
|
|
78
|
-
### Phase A実行フローチャート
|
|
79
|
-
|
|
80
|
-
```text
|
|
81
|
-
[開発完了]
|
|
82
|
-
↓
|
|
83
|
-
[ローカルでPhase Aを実行]
|
|
84
|
-
↓
|
|
85
|
-
単体テストが失敗?
|
|
86
|
-
YES → バグ修正 → 再実行
|
|
87
|
-
NO → ↓
|
|
88
|
-
↓
|
|
89
|
-
Lintエラーがある?
|
|
90
|
-
YES → コード修正 → 再実行
|
|
91
|
-
NO → ↓
|
|
92
|
-
↓
|
|
93
|
-
ビルドが失敗?
|
|
94
|
-
YES → エラー修正 → 再実行
|
|
95
|
-
NO → ↓
|
|
96
|
-
↓
|
|
97
|
-
[PR作成]
|
|
98
|
-
↓
|
|
99
|
-
[CI/CDが自動実行]
|
|
100
|
-
↓
|
|
101
|
-
CI/CDが成功?
|
|
102
|
-
YES → レビュー依頼
|
|
103
|
-
NO → ローカルで修正 → 再プッシュ
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### CI/CD設定
|
|
107
|
-
|
|
108
|
-
Phase AはGitHub ActionsまたはScrewdriverで自動実行されます。
|
|
109
|
-
|
|
110
|
-
詳細は [ci-setup.md](../release/ci-setup.md) を参照してください。
|
|
111
|
-
|
|
112
|
-
### Phase A失敗時の対応
|
|
113
|
-
|
|
114
|
-
#### ケース1: 単体テストが失敗
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
# 失敗したテストを確認
|
|
118
|
-
npm test -- --reporter=verbose
|
|
119
|
-
|
|
120
|
-
# 該当するテストを実行
|
|
121
|
-
npm test -- tests/unit/calculator.test.ts
|
|
122
|
-
|
|
123
|
-
# バグを修正
|
|
124
|
-
# テストを再実行して確認
|
|
125
|
-
npm test
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
#### ケース2: Lintエラー
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
# 自動修正を試みる
|
|
132
|
-
npm run lint:fix
|
|
133
|
-
|
|
134
|
-
# 手動修正が必要な場合
|
|
135
|
-
# エディタでエラー箇所を修正
|
|
136
|
-
|
|
137
|
-
# 再実行して確認
|
|
138
|
-
npm run lint
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
#### ケース3: ビルドエラー
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
# エラー詳細を確認
|
|
145
|
-
npm run build
|
|
146
|
-
|
|
147
|
-
# 型エラーの場合
|
|
148
|
-
npm run type-check
|
|
149
|
-
|
|
150
|
-
# エラーを修正
|
|
151
|
-
# 再ビルドして確認
|
|
152
|
-
npm run build
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Phase B: リリース準備時の手動テスト
|
|
156
|
-
|
|
157
|
-
### 目的
|
|
158
|
-
|
|
159
|
-
本番環境に近い状態で、システム全体の動作を検証します。
|
|
160
|
-
|
|
161
|
-
### 実行タイミング
|
|
162
|
-
|
|
163
|
-
- **PRがmainブランチにマージされた後**
|
|
164
|
-
- **リリースタグを作成する前**
|
|
165
|
-
- 手動で実行
|
|
166
|
-
|
|
167
|
-
### 実行内容
|
|
168
|
-
|
|
169
|
-
#### 1. 統合テスト(推奨)
|
|
170
|
-
|
|
171
|
-
複数コンポーネント間の連携を検証します。
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
# Node.js
|
|
175
|
-
npm run test:integration
|
|
176
|
-
|
|
177
|
-
# Java (Gradle)
|
|
178
|
-
./gradlew integrationTest
|
|
179
|
-
|
|
180
|
-
# PHP
|
|
181
|
-
composer test:integration
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**確認項目**:
|
|
185
|
-
- API層とデータベース層の連携
|
|
186
|
-
- 外部サービスとの統合
|
|
187
|
-
- トランザクション処理
|
|
188
|
-
|
|
189
|
-
#### 2. E2Eテスト(推奨)
|
|
190
|
-
|
|
191
|
-
ユーザー視点での完全なフローを検証します。
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
# Playwright
|
|
195
|
-
npx playwright test
|
|
196
|
-
|
|
197
|
-
# Cypress
|
|
198
|
-
npx cypress run
|
|
199
|
-
|
|
200
|
-
# Selenium
|
|
201
|
-
npm run test:e2e
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
**確認項目**:
|
|
205
|
-
- ユーザー登録フロー
|
|
206
|
-
- 商品購入フロー
|
|
207
|
-
- ログイン/ログアウト
|
|
208
|
-
- エラー処理
|
|
209
|
-
|
|
210
|
-
#### 3. パフォーマンステスト(任意)
|
|
211
|
-
|
|
212
|
-
システムの性能を検証します。
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
# 負荷テストツールを使用
|
|
216
|
-
# 例: Apache JMeter, k6, Artillery
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
**確認項目**:
|
|
220
|
-
- レスポンスタイム
|
|
221
|
-
- スループット
|
|
222
|
-
- リソース使用率
|
|
223
|
-
|
|
224
|
-
#### 4. セキュリティテスト(任意)
|
|
225
|
-
|
|
226
|
-
セキュリティ脆弱性を検証します。
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
# セキュリティスキャンツールを使用
|
|
230
|
-
# 例: OWASP ZAP, Snyk
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
**確認項目**:
|
|
234
|
-
- 認証/認可
|
|
235
|
-
- 入力値検証
|
|
236
|
-
- SQL インジェクション
|
|
237
|
-
- XSS
|
|
238
|
-
|
|
239
|
-
### Phase B実行フローチャート
|
|
240
|
-
|
|
241
|
-
```text
|
|
242
|
-
[PRマージ完了]
|
|
243
|
-
↓
|
|
244
|
-
[Phase B開始]
|
|
245
|
-
↓
|
|
246
|
-
━━━━━━━━━━━━━━━━
|
|
247
|
-
統合テスト(推奨)
|
|
248
|
-
━━━━━━━━━━━━━━━━
|
|
249
|
-
↓
|
|
250
|
-
統合テストが失敗?
|
|
251
|
-
YES → バグ修正 → PR作成 → マージ → Phase B再実行
|
|
252
|
-
NO → ↓
|
|
253
|
-
↓
|
|
254
|
-
━━━━━━━━━━━━━━━━
|
|
255
|
-
E2Eテスト(推奨)
|
|
256
|
-
━━━━━━━━━━━━━━━━
|
|
257
|
-
↓
|
|
258
|
-
E2Eテストが失敗?
|
|
259
|
-
YES → バグ修正 → PR作成 → マージ → Phase B再実行
|
|
260
|
-
NO → ↓
|
|
261
|
-
↓
|
|
262
|
-
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
263
|
-
パフォーマンステスト(任意)
|
|
264
|
-
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
265
|
-
↓
|
|
266
|
-
性能要件を満たす?
|
|
267
|
-
YES → ↓
|
|
268
|
-
NO → 最適化 → PR作成 → マージ → Phase B再実行
|
|
269
|
-
↓
|
|
270
|
-
━━━━━━━━━━━━━━━━━━━
|
|
271
|
-
セキュリティテスト(任意)
|
|
272
|
-
━━━━━━━━━━━━━━━━━━━
|
|
273
|
-
↓
|
|
274
|
-
脆弱性が見つかった?
|
|
275
|
-
YES → 修正 → PR作成 → マージ → Phase B再実行
|
|
276
|
-
NO → ↓
|
|
277
|
-
↓
|
|
278
|
-
[Phase B完了]
|
|
279
|
-
↓
|
|
280
|
-
[リリースタグ作成]
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### Phase B失敗時の対応
|
|
284
|
-
|
|
285
|
-
Phase Bで問題が見つかった場合:
|
|
286
|
-
|
|
287
|
-
1. **バグ修正のPRを作成**
|
|
288
|
-
2. **Phase Aを通過させる**(CI/CD自動実行)
|
|
289
|
-
3. **PRをマージ**
|
|
290
|
-
4. **Phase Bを再実行**
|
|
291
|
-
|
|
292
|
-
**重要**: Phase Bで見つかった問題は、必ずPR → Phase A → マージのフローを経て修正します。直接mainブランチにコミットしてはいけません。
|
|
293
|
-
|
|
294
|
-
## Phase A と Phase B の違い
|
|
295
|
-
|
|
296
|
-
| 項目 | Phase A | Phase B |
|
|
297
|
-
|------|---------|---------|
|
|
298
|
-
| **実行タイミング** | PR作成前 | リリース準備時 |
|
|
299
|
-
| **実行方式** | CI/CD自動 | 手動 |
|
|
300
|
-
| **テストタイプ** | 単体テスト | 統合、E2E、パフォーマンス、セキュリティ |
|
|
301
|
-
| **実行頻度** | 毎PR | リリース前のみ |
|
|
302
|
-
| **実行時間** | 数分 | 数十分〜数時間 |
|
|
303
|
-
| **目的** | 基本品質保証 | 本番環境準備 |
|
|
304
|
-
|
|
305
|
-
## テスト実行のベストプラクティス
|
|
306
|
-
|
|
307
|
-
### 1. Phase Aは必ず成功させてからPR作成
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
# ローカルで事前確認
|
|
311
|
-
npm test && npm run lint && npm run build
|
|
312
|
-
|
|
313
|
-
# すべて成功したらPR作成
|
|
314
|
-
gh pr create --head feature/xxx --base main
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### 2. Phase Bは計画的に実行
|
|
318
|
-
|
|
319
|
-
Phase Bは時間がかかるため、計画的に実行します:
|
|
320
|
-
|
|
321
|
-
- **事前準備**: テスト環境、テストデータの準備
|
|
322
|
-
- **時間確保**: 十分な時間を確保(数時間)
|
|
323
|
-
- **チーム共有**: Phase B実行中であることをチームに共有
|
|
324
|
-
|
|
325
|
-
### 3. テスト失敗時は慌てずに対応
|
|
326
|
-
|
|
327
|
-
```text
|
|
328
|
-
テスト失敗
|
|
329
|
-
↓
|
|
330
|
-
1. エラーログを確認
|
|
331
|
-
2. 再現手順を特定
|
|
332
|
-
3. 原因を調査
|
|
333
|
-
4. 修正方法を検討
|
|
334
|
-
5. 修正を実装
|
|
335
|
-
6. テストで検証
|
|
336
|
-
7. PR作成
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
### 4. テストはマスタテストとして常に最新を保つ
|
|
340
|
-
|
|
341
|
-
テストファイルは常に最新の仕様を反映した「マスタテスト」として管理します:
|
|
342
|
-
|
|
343
|
-
```text
|
|
344
|
-
tests/
|
|
345
|
-
├── unit/
|
|
346
|
-
│ ├── user-service.test.ts # 常に最新の仕様を反映
|
|
347
|
-
│ └── calculator.test.ts
|
|
348
|
-
├── integration/
|
|
349
|
-
│ ├── user-api.test.ts # 常に最新の仕様を反映
|
|
350
|
-
│ └── payment.test.ts
|
|
351
|
-
└── e2e/
|
|
352
|
-
├── user-registration.test.ts # 常に最新の仕様を反映
|
|
353
|
-
└── checkout.test.ts
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
**仕様変更・機能追加時の対応**:
|
|
357
|
-
|
|
358
|
-
- **新機能追加**: 既存のテストファイルに新しいテストケースを追加
|
|
359
|
-
- **仕様変更**: 既存のテストケースを更新(TDDの原則に従って)
|
|
360
|
-
- **機能削除**: 不要になったテストケースを削除
|
|
361
|
-
|
|
362
|
-
**メリット**:
|
|
363
|
-
- テスト実行時間が一定に保たれる
|
|
364
|
-
- テストが常に最新の仕様を反映
|
|
365
|
-
- メンテナンスが容易
|
|
366
|
-
|
|
367
|
-
**phase-0、phase-1のような履歴管理はしない**
|
|
368
|
-
|
|
369
|
-
## チェックリスト
|
|
370
|
-
|
|
371
|
-
### Phase A実行前
|
|
372
|
-
|
|
373
|
-
- [ ] ローカルですべてのテストが成功している
|
|
374
|
-
- [ ] Lintエラーがない
|
|
375
|
-
- [ ] ビルドが成功している
|
|
376
|
-
- [ ] 新規追加したコードのテストを書いた
|
|
377
|
-
|
|
378
|
-
### Phase B実行前
|
|
379
|
-
|
|
380
|
-
- [ ] PRがmainブランチにマージ済み
|
|
381
|
-
- [ ] テスト環境が準備されている
|
|
382
|
-
- [ ] テストデータが準備されている
|
|
383
|
-
- [ ] 十分な時間が確保されている
|
|
384
|
-
|
|
385
|
-
### リリースタグ作成前
|
|
386
|
-
|
|
387
|
-
- [ ] Phase Bのすべてのテストが成功している
|
|
388
|
-
- [ ] 重大なバグが残っていない
|
|
389
|
-
- [ ] パフォーマンス要件を満たしている(該当する場合)
|
|
390
|
-
- [ ] セキュリティチェックが完了している(該当する場合)
|
|
391
|
-
|
|
392
|
-
## 次のステップ
|
|
393
|
-
|
|
394
|
-
- [リリースフロー](../release/release-flow.md): リリースタグ作成からGitHub Releaseまで
|
|
395
|
-
- [テスト失敗時の対応](./test-failure-handling.md): テスト失敗時の詳細な対処方法
|
|
396
|
-
- [CI/CD設定](../release/ci-setup.md): CI/CDの設定方法
|