測試的最佳做法 - Amazon 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 模式。

以下是可能的全域模式的示例。

模式 描述

*.*

符合目前目錄中包含點的所有物件名稱

*.xml

符合目前目錄中以結尾的所有物件名稱 .xml

*.{xml,txt}

符合目前目錄中以.xml或結尾的所有物件名稱 .txt

**/*.xml

在所有以下結尾的目錄中匹配對象名稱 .xml

testFolder

匹配一個名為的對象testFolder,將其視為一個文件

testFolder/*

符合子資料夾中某個層級中的物件testFolder,例如 testFolder/file.xml

testFolder/*/*

符合子資料夾中兩個層級的物件testFolder,例如 testFolder/reportsFolder/file.xml

testFolder/**

符合資料夾 testFolder 以及 testFolder 下的檔案,例如 testFolder/file.xmltestFolder/otherFolder/file.xml

CodeCatalyst 解釋 glob 模式如下:

  • 斜線 (/) 字元可分隔檔案路徑中的目錄。

  • 星號 (*) 字元符合不超過資料夾邊界之名稱元件的零個或多個字元。

  • 雙星號 (**) 會在所有目錄中比對名稱元件的零個或多個字元。

注意

ExcludePaths優先順序高於IncludePaths。如果同時IncludePathsExcludePaths包含相同的資料夾,則不會掃描該資料夾中的報告。