

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

# 關於測試分割
<a name="parallel-test-splitting"></a>

AWS CodeBuild的測試分割功能可讓您在多個運算執行個體間平行化測試套件執行，進而縮短整體測試執行時間。此功能是透過 CodeBuild 專案設定中的批次組態和 buildspec 檔案中的`codebuild-tests-run`公用程式來啟用。

測試會根據指定的碎片策略進行分割。CodeBuild 提供兩種碎片策略，如下所示：

相等分佈  
`equal-distribution` 碎片策略會根據測試檔案名稱的字母順序，將測試分割為平行組建。此方法會先排序測試檔案，然後採用以區塊為基礎的方法來分配它們，確保類似的檔案分組在一起進行測試。建議在處理一組相對較小的測試檔案時。雖然此方法旨在為每個碎片配置大約相等數量的檔案，但最大差異為 1，但不保證穩定性。在後續建置中新增或移除測試檔案時，現有檔案的分佈可能會變更，從而導致碎片之間的重新指派。

穩定性  
`stability` 碎片策略採用一致的雜湊演算法，在碎片之間分割測試，確保檔案分佈保持穩定。新增或移除新檔案時，此方法可確保現有的file-to-shard指派大致保持不變。對於大型測試套件，建議使用穩定性選項，將測試平均分散到碎片。此機制旨在提供近乎相等的分佈，確保每個碎片都收到相似數量的檔案，只有最小的差異。雖然穩定性策略不保證理想的相等分佈，但它提供近乎相等的分佈，即使在新增或移除檔案時，也能維持跨組建的檔案指派一致性。

若要啟用測試分割，您需要在 CodeBuild 專案設定中設定批次區段，指定所需的`parallelism`層級和其他相關參數。此外，您需要在 buildspec 檔案中包含 `codebuild-tests-run`公用程式，以及適當的測試命令和分割方法。