

Amazon 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 可以建立包含測試結果的報告。

您可以使用測試報告來協助疑難排解測試的問題。如果您有來自多個組建的許多測試報告，您可以使用測試報告來檢視失敗率，以協助您最佳化組建。

您可以使用下列測試報告檔案格式：
+ 小黃瓜 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 （由 [simplecov](https://github.com/simplecov-ruby/simplecov) 產生，而非 [simplecov-json](https://github.com/vicentllongo/simplecov-json)， .json)
+ 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`、`LOW`、 `MEDIUM`和 `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)