使用工作流进行测试
在 CodeCatalyst 中,您可以将测试作为不同工作流操作(如构建和测试)的一部分来运行。这些工作流操作都可以生成质量报告。测试操作是生成测试、代码覆盖率、软件组成分析和静态分析报告的工作流操作。这些报告显示在 CodeCatalyst 控制台中。
质量报告类型
Amazon CodeCatalyst 测试操作支持以下类型的质量报告。有关如何在 YAML 中格式化这些报告的示例,请参阅质量报告 YAML 示例。
测试报告
在 CodeCatalyst 中,您可以配置在构建过程中运行的单元测试、集成测试和系统测试。然后,CodeCatalyst 可以创建包含测试结果的报告。
您可以使用测试报告来帮助解决测试问题。如果您有来自多个构建的许多测试报告,您可以使用测试报告查看失败率,以帮助您优化构建。
您可以使用以下测试报告文件格式:
-
Cucumber JSON (.json)
-
JUnit XML (.xml)
-
NUnit XML (.xml)
-
NUnit3 XML (.xml)
-
TestNG XML (.xml)
-
Visual Studio TRX(.trx、.xml)
代码覆盖率报告
在 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(由 simplecov
生成,而非 simplecov-json 、.json) -
Clover XML(版本 3,.xml)
-
Cobertura XML(.xml)
-
LCOV(.info)
软件组成分析报告
在 CodeCatalyst 中,您可以使用软件组成分析(SCA)工具来分析应用程序的组件并检查是否存在已知的安全漏洞。您可以发现并解析 SARIF 报告,其中详细列出了不同严重程度的漏洞以及修复方法。有效的严重程度值(按严重程度从高到低)为 CRITICAL
、HIGH
、MEDIUM
、LOW
和 INFORMATIONAL
。
支持以下 SCA 报告文件格式:
-
SARIF(.sarif、.json)
静态分析报告
您可以使用静态分析(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)