本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
測試的最佳做法
使用提供的測試功能時 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 模式。
以下是可能的全域模式的示例。
模式 | 描述 |
---|---|
|
符合目前目錄中包含點的所有物件名稱 |
|
符合目前目錄中以結尾的所有物件名稱 |
|
符合目前目錄中以 |
|
在所有以下結尾的目錄中匹配對象名稱 |
|
匹配一個名為的對象 |
|
符合子資料夾中某個層級中的物件 |
|
符合子資料夾中兩個層級的物件 |
|
符合資料夾 |
CodeCatalyst 解釋 glob 模式如下:
-
斜線 (
/
) 字元可分隔檔案路徑中的目錄。 -
星號 (
*
) 字元符合不超過資料夾邊界之名稱元件的零個或多個字元。 -
雙星號 (
**
) 會在所有目錄中比對名稱元件的零個或多個字元。
注意
ExcludePaths
優先順序高於IncludePaths
。如果同時IncludePaths
ExcludePaths
包含相同的資料夾,則不會掃描該資料夾中的報告。