---
generated_at: 2026-02-19 10:30:00
metrics:
  claims_total: 88
  claims_with_evidence: 88
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：FSharp-DependencyManager-Nuget 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：88 / 88、根拠なし：0
- 優先レビュー（高）
  1. **外部プロセス実行テスト（UT-DMN-022〜027）**：実際のdotnet環境依存のためモック化推奨
  2. **ファイルシステム依存テスト（UT-DMN-001〜003, 014〜017）**：テスト環境のセットアップが必要
  3. **キャッシュ機能テスト（UT-DMN-078, 081）**：状態管理の検証が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `src/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.Utilities.fs` - Utilities モジュール定義
- E-02: `src/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.ProjectFile.fs` - ProjectFile モジュール定義
- E-03: `src/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.fs` - FSharpDependencyManager クラス/モジュール定義
- E-04: `src/FSharp.DependencyManager.Nuget/FSharp.DependencyManager.fsi` - 公開インターフェース定義

## 3) Claims と根拠の対応（レビューの主戦場）

### Utilities モジュール（FSharp.DependencyManager.Utilities.fs）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | verifyFilesExist関数は全ファイルが存在する場合にtrueを返す | E-01 (L44-45) | ○ |
| C-02 | verifyFilesExist関数は存在しないファイルがある場合にfalseを返す | E-01 (L44-45) | ○ |
| C-03 | verifyFilesExist関数は空リストに対してtrueを返す | E-01 (L44-45: List.tryFind) | ○ |
| C-04 | findLoadsFromResolutions関数はInitializeSourcePathを抽出する | E-01 (L47-56) | ○ |
| C-05 | findLoadsFromResolutions関数はNugetPackageIdが空のものを除外する | E-01 (L49-53: フィルタ条件) | ○ |
| C-06 | findLoadsFromResolutions関数はInitializeSourcePathが空のものを除外する | E-01 (L49-53: フィルタ条件) | ○ |
| C-07 | findLoadsFromResolutions関数は空配列に対して空配列を返す | E-01 (L47-56) | ○ |
| C-08 | findReferencesFromResolutions関数はruntime型のアセットからFullPathを抽出する | E-01 (L58-68) | ○ |
| C-09 | findReferencesFromResolutions関数はIsNotImplementationReference="true"を除外する | E-01 (L65: フィルタ条件) | ○ |
| C-10 | findReferencesFromResolutions関数はruntime以外のAssetTypeを除外する | E-01 (L66: フィルタ条件) | ○ |
| C-11 | findIncludesFromResolutions関数はPackageRootを抽出する | E-01 (L70-91) | ○ |
| C-12 | findIncludesFromResolutions関数はNativePathも抽出する | E-01 (L78-89) | ○ |
| C-13 | findIncludesFromResolutions関数は存在しないPackageRootを除外する | E-01 (L74-75: Directory.Exists) | ○ |
| C-14 | getResolutionsFromFile関数はファイルからResolution配列を生成する | E-01 (L93-118) | ○ |
| C-15 | getResolutionsFromFile関数は8カラム未満の行でInvalidOperationExceptionをスローする | E-01 (L105-106) | ○ |
| C-16 | getResolutionsFromFile関数は存在しないファイルで空配列を返す | E-01 (L95-99: try-with) | ○ |
| C-17 | getResolutionsFromFile関数は空ファイルで空配列を返す | E-01 (L96-97: フィルタ) | ○ |
| C-18 | getOptions関数はカンマ区切りオプションを分割する | E-01 (L126-168) | ○ |
| C-19 | getOptions関数はクォート内のカンマを保持する | E-01 (L151-166: insideSQ処理) | ○ |
| C-20 | getOptions関数は空文字列で空リストを返す | E-01 (L126-168) | ○ |
| C-21 | getOptions関数はキーのみの値を解析する | E-01 (L127-147: split関数) | ○ |
| C-22 | executeTool関数はコマンドを実行し結果を返す | E-01 (L170-218) | ○ |
| C-23 | executeTool関数はpathToExe=Noneで(false, empty, empty)を返す | E-01 (L218) | ○ |
| C-24 | executeTool関数はタイムアウト時にTimeoutExceptionをスローする | E-01 (L210-212) | ○ |
| C-25 | buildProject関数はプロジェクトをビルドしPackageBuildResolutionResultを返す | E-01 (L220-284) | ○ |
| C-26 | buildProject関数はビルド失敗時にsuccess=falseを返す | E-01 (L259-272) | ○ |
| C-27 | buildProject関数はbinLogPath指定時にバイナリログを出力する | E-01 (L221-230) | ○ |
| C-28 | generateSourcesFromNugetConfigs関数はNuGet設定からソースを生成する | E-01 (L286-335) | ○ |
| C-29 | generateSourcesFromNugetConfigs関数はdotnet不在時に空文字列を返す | E-01 (L334-335) | ○ |
| C-30 | computeSha256HashOfBytes関数はSHA256ハッシュを計算する | E-01 (L337) | ○ |
| C-31 | computeSha256HashOfBytes関数は空配列でも動作する | E-01 (L337: SHA256.Create().ComputeHash) | ○ |

### ProjectFile モジュール（FSharp.DependencyManager.ProjectFile.fs）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-32 | makeScriptFromReferences関数は参照リストからスクリプトを生成する | E-02 (L24-44) | ○ |
| C-33 | makeScriptFromReferences関数は空リストでテンプレートのみを返す | E-02 (L24-44) | ○ |
| C-34 | makeScriptFromReferences関数はdotnetHostPath=Noneで'???'を埋め込む | E-02 (L29) | ○ |

### FSharpDependencyManager モジュール（FSharp.DependencyManager.fs）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | concat関数は2つの非空文字列をセミコロンで連結する | E-03 (L22-27) | ○ |
| C-36 | concat関数は第1引数が空の場合に第2引数を返す | E-03 (L25) | ○ |
| C-37 | concat関数は第2引数が空の場合に第1引数を返す | E-03 (L24) | ○ |
| C-38 | concat関数は両方空の場合に空文字列を返す | E-03 (L27) | ○ |
| C-39 | validateAndFormatRestoreSources関数はファイルURIをフォーマットする | E-03 (L29-52) | ○ |
| C-40 | validateAndFormatRestoreSources関数はHTTPSソースをフォーマットする | E-03 (L47-51) | ○ |
| C-41 | validateAndFormatRestoreSources関数は存在しないディレクトリでExceptionをスローする | E-03 (L45-46) | ○ |
| C-42 | validateAndFormatRestoreSources関数は複数ソースを処理する | E-03 (L31) | ○ |
| C-43 | formatPackageReference関数はPackageReferenceをXML形式にフォーマットする | E-03 (L54-89) | ○ |
| C-44 | formatPackageReference関数はScript属性を含める | E-03 (L74-80) | ○ |
| C-45 | formatPackageReference関数はUsePackageTargets=falseでExcludeAssetsを含める | E-03 (L64-67) | ○ |
| C-46 | formatPackageReference関数はRestoreSourcesをPropertyGroupとして出力する | E-03 (L86-88) | ○ |
| C-47 | parsePackageReferenceOption関数はInclude=value形式を解析する | E-03 (L91-203) | ○ |
| C-48 | parsePackageReferenceOption関数は暗黙引数形式を解析する | E-03 (L194-199) | ○ |
| C-49 | parsePackageReferenceOption関数はmscorlibでArgumentExceptionをスローする | E-03 (L97-99, L122) | ○ |
| C-50 | parsePackageReferenceOption関数はFSharp.CoreでArgumentExceptionをスローする（.fsx） | E-03 (L124-125) | ○ |
| C-51 | parsePackageReferenceOption関数はVersion省略時にデフォルト'*'を設定する | E-03 (L112) | ○ |
| C-52 | parsePackageReferenceOption関数はInclude値なしでArgumentExceptionをスローする | E-03 (L139) | ○ |
| C-53 | parsePackageReferenceOption関数はusepackagetargetsを解析する | E-03 (L142-147) | ○ |
| C-54 | parsePackageReferenceOption関数は無効なusepackagetargets値でArgumentExceptionをスローする | E-03 (L146) | ○ |
| C-55 | parsePackageReferenceOption関数はtimeout=Nを解析する | E-03 (L158-172) | ○ |
| C-56 | parsePackageReferenceOption関数はtimeout=noneで-1を設定する | E-03 (L166-167) | ○ |
| C-57 | parsePackageReferenceOption関数は無効なtimeout値でArgumentExceptionをスローする | E-03 (L168-169) | ○ |
| C-58 | parsePackageReferenceOption関数はbare timeoutでArgumentExceptionをスローする | E-03 (L158, L191-192) | ○ |
| C-59 | parsePackageReferenceOption関数はbl=trueでバイナリログを有効化する | E-03 (L175) | ○ |
| C-60 | parsePackageReferenceOption関数はbl=pathで指定パスを設定する | E-03 (L177) | ○ |
| C-61 | parsePackageReferenceOption関数はbare 'bl'でバイナリログを有効化する | E-03 (L186-190) | ○ |
| C-62 | parsePackageReferenceOption関数は3つ以上の暗黙引数でArgumentExceptionをスローする | E-03 (L198) | ○ |
| C-63 | parsePackageReference関数は複数行を解析する | E-03 (L205-212) | ○ |
| C-64 | parsePackageReference関数は重複を除去する | E-03 (L211: List.distinct) | ○ |
| C-65 | parsePackageDirective関数は'i'ディレクティブをRestoreSourcesとして処理する | E-03 (L214-225) | ○ |
| C-66 | computeHashForResolutionInputs関数はハッシュを計算する | E-03 (L227-272) | ○ |
| C-67 | computeHashForResolutionInputs関数はワイルドカードバージョンでNoneを返す | E-03 (L236-253) | ○ |
| C-68 | computeHashForResolutionInputs関数は同じ入力で同じハッシュを返す | E-03 (L264-271: 決定論的計算) | ○ |

### ResolveDependenciesResult クラス（FSharp.DependencyManager.fs）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-69 | ResolveDependenciesResultコンストラクタは全プロパティを設定する | E-03 (L275-304) | ○ |
| C-70 | Successプロパティは成功時にtrueを返す | E-03 (L279) | ○ |
| C-71 | Successプロパティは失敗時にfalseを返す | E-03 (L279) | ○ |

### FSharpDependencyManager クラス（FSharp.DependencyManager.fs）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-72 | 3引数コンストラクタでインスタンスが生成される | E-03 (L307-321), E-04 (L51-52) | ○ |
| C-73 | 2引数コンストラクタでインスタンスが生成される | E-03 (L479), E-04 (L54) | ○ |
| C-74 | 1引数コンストラクタでインスタンスが生成される | E-03 (L480), E-04 (L55) | ○ |
| C-75 | Nameプロパティは'MsBuild Nuget DependencyManager'を返す | E-03 (L310, L482), E-04 (L57) | ○ |
| C-76 | Keyプロパティは'nuget'を返す | E-03 (L309, L484), E-04 (L59) | ○ |
| C-77 | HelpMessagesプロパティはヘルプメッセージ配列を返す | E-03 (L486-496), E-04 (L61) | ○ |
| C-78 | ClearResultsCacheメソッドはキャッシュを削除・再作成する | E-03 (L498-500), E-04 (L63) | ○ |
| C-79 | ResolveDependenciesメソッドは依存関係を解決する | E-03 (L502-577), E-04 (L65-73) | ○ |
| C-80 | ResolveDependenciesメソッドは解決失敗時にSuccess=falseを返す | E-03 (L572-575) | ○ |
| C-81 | ResolveDependenciesメソッドはキャッシュを利用する | E-03 (L444-475, L530-533) | ○ |
| C-82 | ResolveDependenciesメソッドは.csxで正しいprefixを使用する | E-03 (L514-517) | ○ |
| C-83 | ResolveDependenciesメソッドは.fsxで正しいprefixを使用する | E-03 (L514-517) | ○ |
| C-84 | ResolveDependenciesメソッドはSourceFilesを含める | E-03 (L568) | ○ |
| C-85 | ResolveDependenciesメソッドはRootsを含める | E-03 (L569) | ○ |
| C-86 | outputDirectory=Noneで一時ディレクトリを使用する | E-03 (L354-363) | ○ |
| C-87 | outputDirectoryが相対パスの場合にspecialDir基準で解決する | E-03 (L357-360) | ○ |
| C-88 | sdkDirOverrideが指定された場合にそのパスを使用する | E-03 (L312-320) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし（全88件の主張に対して根拠が存在）

## 5) リスクフラグ（レビュー観点）
- **リスク 1: 外部プロセス依存** - executeTool, buildProject, generateSourcesFromNugetConfigs関数は外部プロセス（dotnet）の実行に依存。テスト環境によって結果が異なる可能性あり。
- **リスク 1: ファイルシステム依存** - verifyFilesExist, findLoadsFromResolutions, findIncludesFromResolutions, getResolutionsFromFile関数はファイルシステムに依存。テストフィクスチャの準備が必要。
- **リスク 0: 型定義** - PackageReference, Resolution, PackageBuildResolutionResult, ResolveDependenciesResultは純粋なデータ型であり、低リスク。

## 6) レビュアーチェックリスト（最小）
- [ ] 外部プロセス実行テスト（UT-DMN-022〜027）のモック戦略は適切か
- [ ] ファイルシステム依存テスト（UT-DMN-001〜003, 011〜017）のテストフィクスチャ設計は妥当か
- [ ] 禁止パッケージ検出テスト（UT-DMN-049〜050）のカバレッジは十分か
- [ ] タイムアウト処理テスト（UT-DMN-024, 055〜058）の境界条件は適切か
- [ ] キャッシュ機能テスト（UT-DMN-078, 081）の状態管理検証は十分か
- [ ] エラーメッセージ（SR.xxx）の多言語対応は考慮されているか
