

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 在 動作中設定品質報告
<a name="test-config-action"></a>

本節說明如何在 動作中設定品質報告。

**Topics**
+ [自動探索和手動報告](#test.auto-discovery)
+ [設定報告的成功條件](#test.success-criteria)
+ [品質報告 YAML 範例](#test.success-criteria-example)

## 自動探索和手動報告
<a name="test.auto-discovery"></a>

啟用自動探索時，CodeCatalyst 會搜尋傳遞至動作的所有輸入，以及動作本身產生的所有檔案，尋找測試、程式碼涵蓋範圍、軟體合成分析 (SCA) 和靜態分析 (SA) 報告。您可以在 CodeCatalyst 中檢視和操作這些報告。

您也可以手動設定要產生哪些報告。您可以指定要產生的報告類型以及檔案格式。如需詳細資訊，請參閱[品質報告類型](test-workflow-actions.md#test-reporting)。

## 設定報告的成功條件
<a name="test.success-criteria"></a>

您可以設定值來決定測試、程式碼涵蓋範圍、軟體合成分析 (SCA) 或靜態分析 (SA) 報告的成功條件。

成功條件是決定報告是否通過或失敗的閾值。CodeCatalyst 會先產生您的報告，可以是測試、程式碼涵蓋範圍、SCA 或 SA 報告，然後將成功條件套用至產生的報告。然後，它會顯示是否符合成功條件，以及達到多少程度。如果任何報告不符合指定的成功條件，則指定成功條件的 CodeCatalyst 動作會失敗。

例如，當您設定 SCA 報告的成功條件時，從最嚴重到最不嚴重的有效漏洞值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、、`INFORMATIONAL`。如果您設定條件以`HIGH`嚴重性掃描一個漏洞，如果至少有一個`HIGH`嚴重性漏洞或沒有`HIGH`嚴重性漏洞，但至少一個嚴重性層級較高的漏洞，例如一個`CRITICAL`嚴重性漏洞，則報告將會失敗。

如果您未指定成功條件，則：
+ 根據您的原始報告產生的 CodeCatalyst 報告不會顯示成功條件。
+ 成功條件不會用來判斷相關聯的工作流程動作是否通過或失敗。

------
#### [ Visual ]

**設定成功條件**

1. 在導覽窗格中，選擇 **CI/CD**，然後選擇**工作流程**。

1. 選擇包含產生報告之動作的工作流程。這是您要套用成功條件的報告。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

1. 選擇**編輯**。

1. 選擇**視覺化**。

1. 在工作流程圖表中，選擇您已設定產生 CodeCatalyst 報告的動作。

1. 選擇 **Output (輸出)** 索引標籤。

1. 在**自動探索報告**或**手動設定報告**下，選擇**成功條件**。

   成功條件隨即出現。根據您先前的選擇，您可能會看到下列任何或所有選項：

   **通過率**

   指定測試報告中必須傳遞的測試百分比，相關 CodeCatalyst 報告才能標示為已傳遞。有效值包括小數位數。例如：`50`、`60.5`。通過率條件僅適用於測試報告。如需測試報告的詳細資訊，請參閱 [測試報告](test-workflow-actions.md#test-reports)。

   **線路涵蓋範圍**

   指定程式碼涵蓋範圍報告中必須涵蓋的行百分比，以便將關聯的 CodeCatalyst 報告標示為已傳遞。有效值包括小數位數。例如：`50`、`60.5`。明細涵蓋範圍條件只會套用至程式碼涵蓋範圍報告。如需程式碼涵蓋範圍報告的詳細資訊，請參閱 [程式碼涵蓋範圍報告](test-workflow-actions.md#test-code-coverage-reports)。

   **分支涵蓋範圍**

   指定程式碼涵蓋範圍報告中必須涵蓋的分支百分比，以便將關聯的 CodeCatalyst 報告標示為已傳遞。有效值包括小數位數。例如：`50`、`60.5`。分支涵蓋範圍條件僅適用於程式碼涵蓋範圍報告。如需程式碼涵蓋範圍報告的詳細資訊，請參閱 [程式碼涵蓋範圍報告](test-workflow-actions.md#test-code-coverage-reports)。

   **漏洞 (SCA)**

   針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SCA 報告中允許的漏洞數量和嚴重性上限。若要指定漏洞，您必須指定：
   + 您要包含在計數中的漏洞最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

     例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL` 漏洞將會很高。
   + 您想要允許之指定嚴重性的漏洞數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

   漏洞條件只會套用至 SCA 報告。如需 SCA 報告的詳細資訊，請參閱 [軟體合成分析報告](test-workflow-actions.md#test-sca-reports)。

   **錯誤**

   針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SA 報告中允許的錯誤數量和嚴重性上限。若要指定錯誤，您必須指定：
   + 您要包含在計數中錯誤的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

     例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL` 錯誤將會很高。
   + 您想要允許之指定嚴重性的錯誤數目上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

   錯誤條件只會套用至 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

   **安全漏洞**

   針對要標記為已傳遞的相關聯 CodeCatalyst 報告，指定 SA 報告中允許的安全漏洞數量和嚴重性上限。若要指定安全漏洞，您必須指定：
   + 您要包含在計數中的安全漏洞的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

     例如，如果您選擇 `HIGH`，則 `HIGH`和 `CRITICAL` 安全漏洞將會很高。
   + 您想要允許之指定嚴重性的安全漏洞數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

   安全漏洞條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

   **品質問題**

   指定 SA 報告中允許將相關聯 CodeCatalyst 報告標示為已傳遞的品質問題數量和嚴重性上限。若要指定品質問題，您必須指定：
   + 您要包含在計數中品質問題的最低嚴重性。從最嚴重到最不嚴重的有效值為：`CRITICAL`、`HIGH`、`MEDIUM`、`LOW`、`INFORMATIONAL`。

     例如，如果您選擇 `HIGH`，則 `HIGH`和`CRITICAL`品質問題將會很高。
   + 您想要允許之指定嚴重性的品質問題數量上限。超過此數字會導致 CodeCatalyst 報告標示為失敗。有效值為整數。

   品質問題條件僅適用於 PyLint 和 ESLint SA 報告。如需 SA 報告的詳細資訊，請參閱 [靜態分析報告](test-workflow-actions.md#test-static-analysis-reports)。

1. 選擇 **Commit** (遞交)。

1. 執行工作流程，讓 CodeCatalyst 將成功條件套用至原始報告，並重新產生包含成功條件資訊的相關聯 CodeCatalyst 報告。如需詳細資訊，請參閱[手動啟動工作流程執行](workflows-manually-start.md)。

------
#### [ YAML ]

**設定成功條件**

1. 在導覽窗格中，選擇 **CI/CD**，然後選擇**工作流程**。

1. 選擇包含產生報告之動作的工作流程。這是您要套用成功條件的報告。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

1. 選擇**編輯**。

1. 選擇 **YAML**。

1. 在工作流程圖表中，選擇您已設定產生 CodeCatalyst 報告的動作。

1. 在詳細資訊窗格中，選擇**輸出**索引標籤。

1. 在 動作、 `AutoDiscoverReports`區段或 `Reports`區段中，新增 **SuccessCriteria** 屬性，以及 `PassRate`、`LineCoverage`、`BranchCoverage`、`Vulnerabilities``StaticAnalysisBug`、 `StaticAnalysisSecurity`和 `StaticAnalysisQuality` 屬性。

   如需每個屬性的說明，請參閱 [建置和測試動作 YAML](build-action-ref.md)。

1. 選擇 **Commit** (遞交)。

1. 執行工作流程，讓 CodeCatalyst 將成功條件套用至原始報告，並使用包含的成功條件資訊重新產生相關聯的 CodeCatalyst 報告。如需啟動工作流程的詳細資訊，請參閱 [手動啟動工作流程執行](workflows-manually-start.md)。

------

## 品質報告 YAML 範例
<a name="test.success-criteria-example"></a>

 下列範例示範如何手動設定四個報告：測試報告、程式碼涵蓋範圍報告、軟體合成分析報告，以及靜態分析報告。

```
Reports:
  MyTestReport:
    Format: JUNITXML
    IncludePaths:
      - "*.xml"
    ExcludePaths:
      - report1.xml
      SuccessCriteria:
        PassRate: 90
  MyCoverageReport:
    Format: CLOVERXML
    IncludePaths:
      - output/coverage/jest/clover.xml
      SuccessCriteria:
        LineCoverage: 75
        BranchCoverage: 75
  MySCAReport:
    Format: SARIFSCA
    IncludePaths:
      - output/sca/reports.xml
      SuccessCriteria:
        Vulnerabilities:
          Number: 5
          Severity: HIGH
  MySAReport:
    Format: ESLINTJSON
    IncludePaths:
      - output/static/eslint.xml
      SuccessCriteria:
        StaticAnalysisBug:
          Number: 10
          Severity: MEDIUM
        StaticAnalysisSecurity:
          Number: 5
          Severity: CRITICAL
        StaticAnalysisQuality:
          Number: 0
          Severity: INFORMATIONAL
```