自 2025 年 11 月 7 日起,Amazon CodeCatalyst 將不再向新客戶開放。如果您想要使用 服務,請在 2025 年 11 月 7 日之前註冊。如需詳細資訊,請參閱如何從 CodeCatalyst 遷移。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
測試的最佳實務
使用 CodeCatalyst 提供的測試功能時,建議您遵循這些最佳實務。
自動探索
在 CodeCatalyst 中設定動作時,自動探索可讓您自動探索各種工具的輸出,例如 JUnit 測試報告,並從中產生相關的 CodeCatalyst 報告。即使探索輸出的名稱或路徑變更,自動探索也有助於確保報告持續產生。新增檔案時,CodeCatalyst 會自動探索檔案並產生相關報告。不過,如果您使用自動探索,請務必考量此功能的下列部分層面:
- 
                當您在動作中啟用自動探索時,所有自動探索到的相同類型報告都會共用相同的成功條件。例如,共用條件,例如最低通過率,會套用至所有自動探索的測試報告。如果您需要相同類型的報告不同條件,則必須明確設定這些報告。 
- 
                自動探索也可以找到您的相依性產生的報告,如果設定成功條件,則這些報告上的 動作可能會失敗。此問題可以透過更新排除路徑組態來解決。 
- 
                自動探索不保證每次都會產生相同的報告清單,因為它會在執行時間掃描動作。如果您希望一律產生特定報告,您應該明確設定報告。例如,如果測試在您的建置中停止執行,則測試架構不會產生任何輸出,因此不會產生任何測試報告,而且動作可能會成功。如果您希望動作的成功取決於該特定測試,則必須明確設定該報告。 
提示
開始使用新的或現有的專案時,請針對整個專案目錄 (包括 **/*) 使用自動探索。這會調用專案中所有檔案的報告產生,包括子目錄中的檔案。
如需詳細資訊,請參閱在 動作中設定品質報告。
成功條件
您可以設定成功條件,在報告上強制執行品質閾值。例如,如果自動探索兩個程式碼涵蓋範圍報告,一個包含 80% 的涵蓋範圍,另一個包含 60% 的涵蓋範圍,您有下列選項:
- 
                將行涵蓋範圍的自動探索成功條件設定為 80%。這會導致第一個報告通過,而第二個報告失敗,這會導致整體動作失敗。若要解除封鎖工作流程,請將新測試新增至您的專案,直到第二個報告的涵蓋範圍超過 80%。 
- 
                將線路涵蓋範圍的自動探索成功條件設定為 60%。這會導致兩個報告都通過,這會導致動作成功。然後,您可以在第二個報告中增加程式碼涵蓋範圍。不過,使用此方法,您無法保證第一個報告中的涵蓋範圍不會低於 80%。 
- 
                使用視覺化編輯器或為每個報告新增明確的 YAML 區段和路徑,明確設定一個或兩個報告。這可讓您為每個報告設定個別的成功條件和自訂名稱。不過,使用此方法時,如果報告路徑變更,動作可能會失敗。 
如需詳細資訊,請參閱設定報告的成功條件。
包含/排除路徑
檢閱動作結果時,您可以透過設定 IncludePaths和 來調整 CodeCatalyst 產生的報告清單ExcludePaths。
- 
                使用 IncludePaths指定您希望 CodeCatalyst 在搜尋報告時包含的檔案和檔案路徑。例如,如果您指定"/test/report/*",CodeCatalyst 會搜尋尋找/test/report/目錄的動作所使用的整個建置映像。找到該目錄時,CodeCatalyst 接著會尋找該目錄中的報告。注意對於手動設定的報告, IncludePaths必須是符合單一檔案的 glob 模式。
- 
                使用 ExcludePaths指定您希望 CodeCatalyst 在搜尋報告時排除的檔案和檔案路徑。例如,如果您指定"/test/reports/**/*",CodeCatalyst 不會搜尋/test/reports/目錄中的檔案。若要忽略目錄中的所有檔案,請使用**/*glob 模式。
以下是可能的 glob 模式範例。
| 模式 | 說明 | 
|---|---|
| 
 | 符合目前目錄中包含點的所有物件名稱 | 
| 
 | 符合目前目錄中以 結尾的所有物件名稱  | 
| 
 | 比對目前目錄中以  | 
| 
 | 比對以 結尾的所有目錄的物件名稱  | 
| 
 | 比對名為 的物件 | 
| 
 | 比對 子資料夾中某個層級的物件 | 
| 
 | 從 比對兩個層級的子資料夾中的物件 | 
| 
 | 符合資料夾  | 
CodeCatalyst 會解譯 glob 模式,如下所示:
- 
                斜線 ( /) 字元會分隔檔案路徑中的目錄。
- 
                星號 ( *) 字元符合不超過資料夾邊界之名稱元件的零個或多個字元。
- 
                雙星號 ( **) 會比對所有目錄中名稱元件的零個或多個字元。
注意
ExcludePaths 優先於 IncludePaths。如果 IncludePaths和 都ExcludePaths包含相同的資料夾,則不會掃描該資料夾是否有報告。