

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自動合併個別建置報告
<a name="parallel-test-auto-merge"></a>

在廣發批次建置中， AWS CodeBuild 支援將個別建置報告自動合併為合併批次層級報告。此功能提供批次中所有組建的測試結果和程式碼涵蓋範圍的完整檢視。

## 運作方式
<a name="parallel-test-auto-merge.how"></a>

執行`fanout`批次建置時，每個個別建置都會產生[測試報告](test-reporting.md)。CodeBuild 接著會自動將來自不同組建的相同報告合併為統一報告，該報告會連接到批次組建。這些合併報告可透過 [ BatchGetBuildBatches](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BatchGetBuildBatches.html#CodeBuild-BatchGetBuildBatches-response-buildBatches) API 的 `reportArns` 欄位輕鬆存取，也可以在 主控台的報告****索引標籤中檢視。此合併功能也延伸至自動探索的報告。

合併的報告是在 buildspec 中指定的[報告群組](test-report-group.md)下建立，或由 CodeBuild 自動探索。您可以直接在這些報告群組下分析合併報告的趨勢，提供對相同建置批次專案歷史組建的整體組建效能和品質指標的寶貴見解。

對於批次中的每個個別組建，CodeBuild 會自動建立個別的報告群組。這些遵循特定的命名慣例，將批次建置報告群組名稱與尾碼 結合`BuildFanoutShard<shard_number>`，其中 `shard_number`代表建立報告群組的碎片數量。此組織可讓您追蹤和分析合併和個別建置層級的趨勢，提供監控和評估其建置程序的彈性。

批次建置報告遵循與[個別建置報告](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Report.html)相同的結構。**報告**索引標籤中的下列金鑰欄位專屬於批次建置報告：

**批次建置報告狀態**  
批次建置報告的狀態會根據報告類型遵循特定規則：  
+ 測試報告：
  + 成功：當所有個別建置報告都成功時，狀態會設定為成功。
  + 失敗：如果任何個別建置報告失敗，狀態會設定為失敗。
  + 未完成：如果任何個別建置報告遺失或狀態不完整，狀態會標示為未完成。
+ 程式碼涵蓋範圍報告：
  + 完成：當所有個別建置報告完成時，狀態設定為完成。
  + 失敗：如果任何個別建置報告失敗，狀態會設定為失敗。
  + 未完成：如果任何個別建置報告遺失或狀態不完整，狀態會標示為未完成。

**測試摘要**  
合併的測試報告會合併所有個別建置報告的下列欄位：  
+ 以duration-in-nano-seconds：所有個別建置報告之間的測試持續時間上限，以奈秒為單位。
+ 總計：所有測試案例的合併計數，加總每個組建的測試總數。
+ status-counts：提供測試狀態的合併檢視，例如通過、失敗或略過，透過彙總所有個別組建中每個狀態類型的計數來計算。

**程式碼涵蓋範圍摘要**  
合併程式碼涵蓋範圍報告使用下列計算，結合所有個別組建的欄位：  
+ 分支涵蓋：個別報告中所有涵蓋分支的總和。
+ 分支遺失：個別報告中所有遺失分支的總和。
+ branch-coverage-percentage： `(Total covered branches / Total branches) * 100`
+ 涵蓋的行數：個別報告中所有涵蓋行數的總和。
+ 遺漏行：個別報告中所有遺漏行的總和。
+ lines-coverage-percentage： `(Total covered lines / Total lines) * 100`

**執行 ID**  
批次建置 ARN。

**測試案例**  
合併的報告包含來自個別建置之所有測試案例的合併清單，可透過 [DescribeTestCases](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeTestCases.html) API 和主控台中的批次建置報告存取。

**程式碼涵蓋範圍**  
合併程式碼涵蓋範圍報告提供所有個別組建中每個檔案的合併行和分支涵蓋範圍資訊，可透過 [DescribeCodeCoverages](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_DescribeCodeCoverages.html) API 和主控台中的批次組建報告存取。注意：對於分散在不同碎片的多個測試檔案所涵蓋的檔案，合併的報告會使用下列選擇條件：  

1. 主要選擇是以碎片之間的最高線涵蓋範圍為基礎。

1. 如果多個碎片的折線涵蓋範圍相等，則會選取分支涵蓋範圍最高的碎片。