

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用工作流进行测试
<a name="test-workflow-actions"></a>

在中 CodeCatalyst，您可以将测试作为不同工作流程操作（例如生成和测试）的一部分来运行。这些工作流操作都可以生成质量报告。*测试操作*是生成测试、代码覆盖率、软件组成分析和静态分析报告的工作流操作。这些报告显示在 CodeCatalyst 控制台中。

**Topics**
+ [质量报告类型](#test-reporting)
+ [添加测试操作](test-add-action.md)
+ [查看测试操作的结果](test-view-results.md)
+ [跳过操作中失败的测试](test.error-handling.md)
+ [与集成 universal-test-runner](test.universal-test-runner.md)
+ [在操作中配置质量报告](test-config-action.md)
+ [测试的最佳实践](test-best-practices.md)
+ [支持的 SARIF 属性](test.sarif.md)

## 质量报告类型
<a name="test-reporting"></a>

Amazon CodeCatalyst 测试操作支持以下类型的质量报告。有关如何在 YAML 中格式化这些报告的示例，请参阅[质量报告 YAML 示例](test-config-action.md#test.success-criteria-example)。

**Topics**
+ [测试报告](#test-reports)
+ [代码覆盖率报告](#test-code-coverage-reports)
+ [软件组成分析报告](#test-sca-reports)
+ [静态分析报告](#test-static-analysis-reports)

### 测试报告
<a name="test-reports"></a>

在中 CodeCatalyst，您可以配置在生成期间运行的单元测试、集成测试和系统测试。然后 CodeCatalyst 可以创建包含测试结果的报告。

您可以使用测试报告来帮助解决测试问题。如果您有来自多个构建的许多测试报告，您可以使用测试报告查看失败率，以帮助您优化构建。

您可以使用以下测试报告文件格式：
+ Cucumber JSON (.json)
+ JUnit XML (.xml)
+ NUnit XML (.xml)
+ NUnit3 XML (.xml)
+ TestNG XML (.xml)
+ Visual Studio TRX（.trx、.xml）

### 代码覆盖率报告
<a name="test-code-coverage-reports"></a>

在中 CodeCatalyst，您可以为测试生成代码覆盖率报告。 CodeCatalyst 提供了以下代码覆盖率指标：

行覆盖率  
衡量测试涵盖的语句数量。语句是一条指令，不包括注释。  
`line coverage = (total lines covered)/(total number of lines)`

分支覆盖率  
衡量在 `if` 或 `case` 语句等控制结构的每个可能分支中，测试覆盖了多少分支。  
`branch coverage = (total branches covered)/(total number of branches)`

支持以下代码覆盖率报告文件格式：
+ JaCoCo XML (.xml)
+ SimpleCov JSON（由 s [implecov 生成，而不是 simplecov](https://github.com/simplecov-ruby/simplecov)-json，[.js](https://github.com/vicentllongo/simplecov-json) on）
+ Clover XML（版本 3，.xml）
+ Cobertura XML（.xml）
+ LCOV（.info）

### 软件组成分析报告
<a name="test-sca-reports"></a>

在中 CodeCatalyst，您可以使用软件组成分析 (SCA) 工具来分析应用程序的组件并检查是否存在已知的安全漏洞。您可以发现并解析 SARIF 报告，其中详细列出了不同严重程度的漏洞以及修复方法。有效的严重程度值（按严重程度从高到低）为 `CRITICAL`、`HIGH`、`MEDIUM`、`LOW` 和 `INFORMATIONAL`。

支持以下 SCA 报告文件格式：
+ SARIF（.sarif、.json）

### 静态分析报告
<a name="test-static-analysis-reports"></a>

您可以使用静态分析（SA）报告来识别源代码级缺陷。在中 CodeCatalyst，您可以在部署代码之前生成 SA 报告以帮助解决代码中的问题。这些问题包括错误、安全漏洞、质量问题和其它漏洞。有效的严重程度值（按严重程度从高到低）为 `CRITICAL`、`HIGH`、`MEDIUM`、`LOW` 和 `INFORMATIONAL`。

CodeCatalyst 提供了以下 SA 指标：

错误  
识别源代码中可能存在的错误。这些错误可能包括有关内存安全的问题。下面是一个错误示例。  

```
// The while loop will inadvertently index into array x out-of-bounds
int x[64];
while (int n = 0; n <= 64; n++) {
  x[n] = 0;
}
```

安全漏洞  
识别源代码中可能存在的安全漏洞。这些安全漏洞可能包括以明文方式存储密钥令牌等问题。

质量问题  
识别源代码中可能存在的质量问题。这些质量问题可能包括风格惯例方面的问题。下面是一个质量问题示例。  

```
// The function name doesn't adhere to the style convention of camelCase
int SUBTRACT(int x, int y) {
  return x-y
}
```

其它漏洞  
识别源代码中可能存在的其它漏洞。

CodeCatalyst 支持以下 SA 报告文件格式：
+ PyLint (.py)
+ ESLint （.js、.jsx、.ts、.tsx）
+ SARIF（.sarif、.json）