@@ -180,105 +180,41 @@ Copyright ブロックの扱い、`ArgumentException` 系の引数の順、`.bat
180180| 単体テストの実行と判定 | [ ` TESTING.md ` ] ( root/programs/TESTING.md ) |
181181| サンプルの疎通確認 | [ ` SMOKETEST.md ` ] ( root/programs/SMOKETEST.md ) |
182182
183- 検証は次の 3 本で、いずれも終了コードで合否が分かる。** この順で実行すること。**
183+ 検証は ` 1_BuildAll.ps1 ` (ビルド)→ ` 2_RunAllTests.ps1 ` (単体テスト)→
184+ ` 3_SmokeTest.ps1 ` (疎通)の 3 本で、いずれも終了コードで合否が分かる。
185+ ** 順序は固定** (1 のクリーンとアセンブリ配置が 2・3 の前提)。
184186
185- ``` powershell
186- cd root\programs
187- .\1_BuildAll.ps1 # 全ビルド
188- .\2_RunAllTests.ps1 # 単体テスト
189- .\3_SmokeTest.ps1 # サンプルの疎通
190- ```
187+ ** 本書にコマンドは書かない。** 引数(` -IgnoreErrors ` / ` -Only ` / ` -List ` / ` -Lang ` )と
188+ 合格の目安は [ ` CHEATSHEET.md ` ] ( root/programs/CHEATSHEET.md ) 1 節が一次情報である。
189+ ** 転記すると、両方を直さないかぎりズレる。**
191190
192191` 2_RunAllTests.ps1 ` はワーキング ツリーの ` Result*.txt ` を書き換える(従来のバッチ運用と同じ)。
193192** コミットの要否は人が判断する** ため、エージェントは差分を報告するに留める。
193+ ** ` -Only ` で絞れば、書き換わるのも絞った分だけになる。**
194194
195- ** エージェントは、この 3 本を個別に実行することを検討する。** (#576 )
196- ` 0_RunAll.ps1 ` は 3 本をまとめて回す** 利用者向けの入口** であり、
197- ** 必要な 1 本だけを選ぶ、という判断が入らない。**
198- どれを回すかは、次節の対応表で決める。
199-
200- ``` powershell
201- .\1_BuildAll.ps1 -Only "Framework_Tool" # ビルドするものだけ
202- .\2_RunAllTests.ps1 -Only "TestBatch" # テスト結果 Result*.txt が絞られる
203- .\3_SmokeTest.ps1 -Only "DeployZip" # 確かめるものだけ
204- ```
205-
206- ** ` -Only ` に何を指定できるかは ` -List ` で出す。**
207- ** 文書には一覧を書かない。** 対象が増減したときに古くなるため、
208- スクリプト自身を一次情報にする(ツールの ` /HELP ` と同じ考え方)。
209-
210- ``` powershell
211- .\1_BuildAll.ps1 -List -Lang Both # 45 ステップ
212- .\2_RunAllTests.ps1 -List # 8 件
213- .\3_SmokeTest.ps1 -List -Lang VB # 6 件(-Lang が効く)
214- ```
215-
216- ** 3 本とも ` -Only ` が空振りしたら終了コード 1 で止まる。**
217- 打ち間違いが「全ステップ OK」になることはない。
218-
219- #### 通しで回す前に、依存関係を見る(#576 )
195+ #### 回す範囲は、依存関係で決める(#576 )
220196
221197** 全部回すのは「安全」ではない。遅いだけのことがある。**
222198
223- 依存の向きは一方向で、段は 2 つしかない。
224-
225- ```
226- 基盤 NuGet / Business / Business.RichClient / CopyAssemblies
227- ↓ (ここが変われば、下は全部やり直し)
228- 末端 Tools / 各サンプル / Tests
229- ```
230-
231- ** ツールと個別サンプルは末端である。** そこを変えても、基盤も他のサンプルも変わらない。
232-
233- | 変更した場所 | ` 1_BuildAll ` | ` 2_RunAllTests ` | ` 3_SmokeTest ` |
234- | ---| ---| ---| ---|
235- | ` Infrastructure/ ` (基盤) | ** 通し** | ** 通し** | ** 通し** |
236- | ` Tools/ ` (ツール) | ` -Only Framework_Tool ` | ** 不要** | ` -Only <そのツール> ` |
237- | 個別サンプル | ` -Only <サンプル> ` | ** 不要** | ` -Only <サンプル> ` |
238- | ` Tests/ ` | ` -Only <対象> ` | ` -Only <対象> ` | ** 不要** |
239- | ` .ps1 ` / ` .md ` のみ | ** 不要** | ** 不要** | ** 不要** |
240-
241- ** ` 2_RunAllTests.ps1 ` の対象はフレームワークのテストだけ** である。
242- ` Tools/ ` や個別サンプルを変えても、ここは動かない。回す理由が無い。
243-
244- 実測(` 0_RunAll.ps1 -Lang Both ` は 24.6 分)。
245-
246- ```
247- 基盤のビルド 122.8 秒
248- Framework_Tool 系だけ 74.8 秒 ← ツールの変更で必要なのはこちら
249- 2_RunAllTests 通し 111.6 秒
250- 2_RunAllTests -Only 35 秒ほど
251- ```
252-
253- ** ツールだけの変更なら、1/16 ほどで終わる。**
254-
255- #### 時間だけの問題ではない
199+ ` 0_RunAll.ps1 ` は 3 本をまとめて回す** 利用者向けの入口** であり、
200+ ** 必要な 1 本だけを選ぶ、という判断が入らない。**
201+ エージェントは** 3 本を個別に実行することを検討する。**
256202
257- ` 2_RunAllTests.ps1 ` は** ワーキング ツリーの ` Result*.txt ` を書き換える。**
258- 関係の無い対象まで回すと、** 人が確認してコミットする差分が増える。**
203+ ツールと個別サンプルは** 依存の末端** で、そこを変えても基盤も他のサンプルも変わらない。
204+ ` 2_RunAllTests.ps1 ` の対象は** フレームワークのテストだけ** で、
205+ ツールやサンプルを変えても動かない。** 回す理由が無い。**
259206
260- ` -Only ` で絞れば、書き換わるのは絞った対象の分だけになる。
207+ ** どこまで回すかは [ ` CHEATSHEET.md ` ] ( root/programs/CHEATSHEET.md ) 1 節の対応表で決める。 **
261208
262- #### それでも通しを回す場面
209+ 通しを回すのは次の場合。
263210
264211- ** 基盤(` Infrastructure/ ` )に触れたとき**
265- - ** リリース前** (` RELEASE.md ` )
266- - ** 絞り込みで妙なエラーが出たとき** (再現するかを見る)
267-
268- 3 本目は制約による誤検知が実際にある。
269- ` -Only ` は前段が用意した状態に依存するステップを落とすことがあり、
270- ** 変更と無関係なエラーに見える。** 詳細は
271- [ ` CHEATSHEET.md ` ] ( root/programs/CHEATSHEET.md ) 1 節の
272- 「` -Only ` + ` -SkipClean ` は万能ではない」。
212+ - ** リリース前** ([ ` RELEASE.md ` ] ( root/programs/RELEASE.md ) )
213+ - ** 絞り込みで妙なエラーが出たとき** (再現するかを見る。制約による誤検知が実際にある)
273214
274215** 判断に迷ったら通しでよい。** ただし** 迷っていないのに通すのは、ただの浪費である。**
275216
276217** 上記の既定は C# 側である。VB 側に手を入れたときは ` -Lang ` で回す。**
277-
278- ``` powershell
279- .\0_RunAll.ps1 -Lang VB # 1 と 3 を VB で通す(2 は VB に対象が無い)
280- ```
281-
282218理由と対象は [ ` BUILDING.md ` ] ( root/programs/BUILDING.md ) 10 節・
283219[ ` SMOKETEST.md ` ] ( root/programs/SMOKETEST.md ) 10 節。
284220
0 commit comments