

亚马逊 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. 选择**输出**选项卡。

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）**

   指定 SCA 报告中允许将关联 CodeCatalyst 报告标记为已通过的最大漏洞数量和严重性。要指定漏洞，您必须指定：
   + 要计入的漏洞的最低严重性。有效值（按严重程度从高到低）为 `CRITICAL`、`HIGH`、`MEDIUM`、`LOW` 和 `INFORMATIONAL`。

     例如，如果您选择 `HIGH`，则将计算 `HIGH` 和 `CRITICAL` 漏洞的总数。
   + 您希望允许的具有指定严重性的漏洞的最大数量。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

   漏洞标准仅适用于 SCA 报告。有关 SCA 报告的更多信息，请参阅[软件组成分析报告](test-workflow-actions.md#test-sca-reports)。

   **错误**

   指定 SA 报告中允许将关联 CodeCatalyst 报告标记为已通过的最大错误数量和严重性。要指定错误，您必须指定：
   + 要计入的错误的最低严重性。有效值（按严重程度从高到低）为 `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)。

   **质量问题**

   指定 SA 报告中允许将相关 CodeCatalyst 报告标记为已通过的最大质量问题数量和严重性。要指定质量问题，您必须指定：
   + 要计入的质量问题的最低严重性。有效值（按严重程度从高到低）为 `CRITICAL`、`HIGH`、`MEDIUM`、`LOW` 和 `INFORMATIONAL`。

     例如，如果您选择 `HIGH`，则将计算 `HIGH` 和 `CRITICAL` 质量问题的总数。
   + 您希望允许的具有指定严重性的质量问题的最大数量。超过此数字会导致 CodeCatalyst 报告被标记为失败。有效值为整数。

   质量问题标准仅适用于 PyLint 和 ESLint SA 报告。有关 SA 报告的更多信息，请参阅[静态分析报告](test-workflow-actions.md#test-static-analysis-reports)。

1. 选择**提交**。

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. 选择**提交**。

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
```