diff --git a/TIASshot.Tests/TIASshot.Tests.csproj b/TIASshot.Tests/TIASshot.Tests.csproj index 5aec33b..9afa3f0 100644 --- a/TIASshot.Tests/TIASshot.Tests.csproj +++ b/TIASshot.Tests/TIASshot.Tests.csproj @@ -42,7 +42,19 @@ ..\packages\OpenCvSharp4.4.10.0.20241108\lib\net48\OpenCvSharp.dll + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + diff --git a/TIASshot.Tests/packages.config b/TIASshot.Tests/packages.config index 4648879..24d305e 100644 --- a/TIASshot.Tests/packages.config +++ b/TIASshot.Tests/packages.config @@ -5,4 +5,8 @@ + + + + diff --git "a/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" "b/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" index 8375300..13673da 100644 --- "a/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" +++ "b/docs/02_ENV/ENV_04_\351\226\213\347\231\272\343\202\263\343\203\236\343\203\263\343\203\211.md" @@ -56,6 +56,34 @@ - ネイティブ DLL を x64 でロードするため `/Platform:x64` は必須. - Visual Studio 上ではテストエクスプローラーから実行できる(プラットフォームを x64 にすること). +## クリーン環境での検証 (Clean Verification) + +**ベースライン計測・マージ前検証・「テストが通ることの確認」は,必ず `bin` / `obj` を削除してから行う.** + +`bin` に前回のビルド成果物が残っていると,過去のビルドでコピーされた DLL が残存してアセンブリ解決が偶然成立し,**依存の記述漏れを隠してしまう**(Issue #39: テストプロジェクトに OpenCvSharp の推移的依存が無いにもかかわらず,汚れた `bin` では全緑に見えていた).同じマシンで作業し続ける限り気づけないため,計測・検証の前に毎回消す. + +```powershell +# bin / obj を削除してからビルド・テストする +Get-ChildItem -Path TIASshot, TIASshot.Tests -Include bin, obj -Directory -Recurse | Remove-Item -Recurse -Force +& $msbuild TIASshot.sln /t:Build /p:Configuration=Debug /p:Platform=x64 +& $vstest "TIASshot.Tests\bin\x64\Debug\TIASshot.Tests.dll" /Platform:x64 +``` + +依存パッケージを追加・変更した PR の検証では,これに加えて `packages` も退避して `nuget restore` からやり直し,**新しいマシンでの `git clone` 直後と同じ状態**を再現する. + +```powershell +# clone 相当の完全クリーン検証(packages も退避する) +Get-ChildItem -Path TIASshot, TIASshot.Tests -Include bin, obj -Directory -Recurse | Remove-Item -Recurse -Force +Rename-Item packages packages.bak # 復元に失敗したときのために削除せず退避する +nuget restore TIASshot.sln +& $msbuild TIASshot.sln /t:Build /p:Configuration=Debug /p:Platform=x64 +& $vstest "TIASshot.Tests\bin\x64\Debug\TIASshot.Tests.dll" /Platform:x64 +``` + +- 合格条件: **テストが全件成功し,ビルド警告が増えていないこと**. +- `packages` の復元にはネットワークと時間がかかるため,通常の開発サイクルでは `bin` / `obj` の削除までで運用し,完全クリーン検証は依存変更時とマージ前に行う. +- 検証が終わったら退避した `packages.bak` は削除してよい(`nuget restore` で再取得できるため). + ## 実行 (Run) ビルド後,構成に対応した実行ファイルを起動する.実行時参照ファイル(`config.xml`・カメラ設定 XML・TCC の CSV)が同ディレクトリに配置済みであること([ENV_02_環境構築手順](ENV_02_環境構築手順.md)).