

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

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

# 對工作流程的問題進行故障診斷
<a name="troubleshooting-workflows"></a>

請參閱下列各節，針對 Amazon CodeCatalyst 中的工作流程相關問題進行疑難排解。如需工作流程的相關詳細資訊，請參閱 [使用工作流程建置、測試和部署使用工作流程建置、測試和部署](workflow.md)。

**Topics**
+ [如何修正「工作流程非作用中」訊息？](#troubleshooting-workflows-inactive)
+ [如何修正「工作流程定義有 *n* 個錯誤」錯誤？](#troubleshooting-workflows-asterisks)
+ [如何修正「找不到登入資料」和「ExpiredToken」錯誤？](#troubleshooting-workflows-auth-errors-eks)
+ [如何修正「無法連線至伺服器」錯誤？](#troubleshooting-workflows-unable-connect-eks)
+ [為什麼視覺化編輯器中缺少 CodeDeploy 欄位？](#troubleshooting-workflows-codedeploy)
+ [如何修正 IAM 功能錯誤？](#troubleshooting-workflows-capabilities)
+ [如何修正「npm 安裝」錯誤？](#troubleshooting-workflows-npm)
+ [為什麼多個工作流程具有相同的名稱？](#troubleshooting-workflows-name)
+ [我可以將工作流程定義檔案存放在另一個資料夾中嗎？](#troubleshooting-workflows-folder)
+ [如何將動作依序新增至工作流程？](#troubleshooting-workflows-visual)
+ [為什麼我的工作流程成功驗證，但在執行時間失敗？](#troubleshooting-workflows-validation)
+ [自動探索不會發現我的動作的任何報告](#troubleshooting-reports-auto-discovery)
+ [設定成功條件後，自動探索的報告上的動作失敗](#troubleshooting-success-auto-discovery)
+ [自動探索會產生我不想的報告](#troubleshooting-unwanted-auto-discovery)
+ [自動探索會針對單一測試架構產生許多小型報告](#troubleshooting-reports-combined)
+ [CI/CD 下列出的工作流程與來源儲存庫中的工作流程不相符](#troubleshooting-workflow-source)
+ [我無法建立或更新工作流程](#troubleshooting-workflows-branchrules)

## 如何修正「工作流程非作用中」訊息？
<a name="troubleshooting-workflows-inactive"></a>

**問題**：在 CodeCatalyst 主控台的 **CI/CD** 下，**工作流程**會顯示下列訊息：

`Workflow is inactive.`

此訊息表示工作流程定義檔案包含的觸發條件不適用於您目前所在的分支。例如，您的工作流程定義檔案可能包含參考`main`分支的`PUSH`觸發條件，但您正在功能分支。由於您在功能分支中所做的變更不適用於 `main`，而且 不會在 中啟動工作流程執行`main`，因此 CodeCatalyst 會停用分支上的工作流程並將其標記為 `Inactive`。

**可能的修正：**

如果您想要在功能分支上啟動工作流程，您可以執行下列動作：
+ 在功能分支的工作流程定義檔案中，從 `Triggers`區段移除 `Branches` 屬性，使其看起來像這樣：

  ```
  Triggers:
    - Type: PUSH
  ```

  此組態會在推送至任何分支時觸發，包括您的功能分支。如果啟用觸發條件，CodeCatalyst 將使用工作流程定義檔案和您推送到的任何分支中的來源檔案來啟動工作流程執行。
+ 在功能分支的工作流程定義檔案中，移除 `Triggers`區段並手動執行工作流程。
+ 在您的功能分支中，在工作流程定義檔案中變更 `PUSH`區段，使其參考您的功能分支，而不是另一個分支 （例如 `main`)。

**重要**  
如果您不打算將變更合併回`main`分支，請小心不要遞交這些變更。

如需編輯工作流程定義檔案的詳細資訊，請參閱 [建立工作流程](workflows-create-workflow.md)。

關於觸發條件的詳細資訊，請參閱 [使用觸發程序自動啟動工作流程執行](workflows-add-trigger.md)。

## 如何修正「工作流程定義有 *n* 個錯誤」錯誤？
<a name="troubleshooting-workflows-asterisks"></a>

**問題**：您會看到下列任何錯誤訊息：

**錯誤 1：**

在 **CI/CD**、**工作流程**頁面的工作流程名稱下，您會看到：

`Workflow definition has n errors`

**錯誤 2：**

編輯工作流程時，您可以選擇**驗證**按鈕，下列訊息會顯示在 CodeCatalyst 主控台頂端：

`The workflow definition has errors. Fix the errors and choose Validate to verify your changes.`

**錯誤 3：**

導覽至工作流程的詳細資訊頁面後，您會在**工作流程定義**欄位中看到下列錯誤：

`n errors`

**可能的修正：**
+ 選擇 **CI/CD**、選擇**工作流程**，然後選擇發生錯誤的工作流程名稱。在頂端附近的**工作流程定義**欄位中，選擇錯誤的連結。有關錯誤的詳細資訊會顯示在頁面底部。請依照錯誤中的疑難排解秘訣來修正問題。
+ 確定工作流程定義檔案是 YAML 檔案。
+ 確定工作流程定義檔案中的 YAML 屬性巢狀在正確的層級。若要查看屬性應該如何巢狀化在工作流程定義檔案中，請參閱 [工作流程 YAML 定義](workflow-reference.md)，或參閱從 連結到 的動作文件[將動作新增至工作流程](workflows-add-action.md)。
+ 請確定正確逸出星號 (`*`) 和其他特殊字元。若要逸出這些引號，請新增單引號或雙引號。例如：

  ```
  Outputs:      
    Artifacts:
      - Name: myartifact
        Files:
          - "**/*"
  ```

  如需工作流程定義檔案中特殊字元的詳細資訊，請參閱 [語法準則和慣例](workflow-reference.md#workflow.terms.syntax.conv)。
+ 請確定工作流程定義檔案中的 YAML 屬性使用正確的大小寫。如需大小寫規則的詳細資訊，請參閱 [語法準則和慣例](workflow-reference.md#workflow.terms.syntax.conv)。若要判斷每個屬性的正確大小寫，請參閱 [工作流程 YAML 定義](workflow-reference.md)，或參閱從 連結到 的動作文件[將動作新增至工作流程](workflows-add-action.md)。
+ 確定 `SchemaVersion` 屬性存在，並在工作流程定義檔案中設定為正確的版本。如需詳細資訊，請參閱[SchemaVersion](workflow-reference.md#workflow.schemaversion)。
+ 請確定工作流程定義檔案中的 `Triggers`區段包含所有必要屬性。若要判斷所需的屬性，請在[視覺化編輯器](workflow.md#workflow.editors)中選擇觸發條件，並尋找缺少資訊的欄位，或參閱 中的觸發條件參考文件[Triggers](workflow-reference.md#triggers-reference)。
+ 請確定工作流程定義檔案中的 `DependsOn` 屬性已正確設定，且不會引入循環相依性。如需詳細資訊，請參閱[定序動作](workflows-depends-on.md)。
+ 請確定工作流程定義檔案中的 `Actions`區段至少包含一個動作。如需詳細資訊，請參閱[動作](workflow-reference.md#actions-reference)。
+ 請確定每個動作都包含所有必要的屬性。若要判斷所需的屬性，請在[視覺化編輯器](workflow.md#workflow.editors)中選擇動作，並尋找缺少資訊的欄位，或參閱從 連結至 的動作文件[將動作新增至工作流程](workflows-add-action.md)。
+ 確保所有輸入成品都有對應的輸出成品。如需詳細資訊，請參閱[定義輸出成品](workflows-working-artifacts-output.md)。
+ 請確定已匯出一個動作中定義的變數，以便將其用於其他動作。如需詳細資訊，請參閱[匯出變數，讓其他動作可以使用它](workflows-working-with-variables-export-input.md)。

## 如何修正「找不到登入資料」和「ExpiredToken」錯誤？
<a name="troubleshooting-workflows-auth-errors-eks"></a>

**問題**：在處理 時[教學課程：將應用程式部署至 Amazon EKS](deploy-tut-eks.md)，您會在開發機器的終端機視窗中看到下列其中一個或兩個錯誤訊息：

`Unable to locate credentials. You can configure credentials by running "aws configure".`

`ExpiredToken: The security token included in the request is expired` 

**可能的修正：**

這些錯誤表示您用來存取 AWS 服務的登入資料已過期。在此情況下，請勿執行 `aws configure`命令。請改用下列指示來重新整理您的 AWS 存取金鑰和工作階段字符。

**重新整理您的 AWS 存取金鑰和工作階段字符**

1. 請確定您擁有使用完整 Amazon EKS 教學課程 () 之使用者的 AWS 存取入口網站 URL、使用者名稱和密碼`codecatalyst-eks-user`。當您完成[步驟 1：設定您的開發機器](deploy-tut-eks.md#deploy-tut-eks-dev-env-create)教學課程時，您應該已設定這些項目。
**注意**  
如果您沒有此資訊，請前往 IAM Identity Center 的詳細資訊`codecatalyst-eks-user`頁面，選擇**重設密碼**、**產生一次性密碼 【...】** 和再次**重設密碼**，以在畫面上顯示資訊。

1. 執行以下任意一項：
   + 將 AWS 存取入口網站 URL 貼到瀏覽器的地址列。

     或
   + 如果已載入 AWS 存取入口網站頁面，請重新整理。

1. 如果您尚未登入，請使用 `codecatalyst-eks-user`的使用者名稱和密碼登入。

1. 選擇 **AWS 帳戶**，然後選擇 AWS 帳戶 您指派`codecatalyst-eks-user`使用者和許可集的 名稱。

1. 在許可集名稱 (`codecatalyst-eks-permission-set`) 旁邊，選擇**命令列或程式設計存取**。

1. 在頁面中間複製命令。它們看起來類似以下內容：

   ```
   export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" 
   export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" 
   export AWS_SESSION_TOKEN="session-token"
   ```

   ...其中 *session-token* 是長隨機字串。

1. 將命令貼到您的開發機器的終端機提示中，然後按 Enter 鍵。

   會載入新的金鑰和工作階段字符。

   您現在已重新整理您的登入資料。 AWS CLI、 `eksctl`和 `kubectl`命令現在應該可以運作。

## 如何修正「無法連線至伺服器」錯誤？
<a name="troubleshooting-workflows-unable-connect-eks"></a>

**問題**：在 中所述的教學課程中[教學課程：將應用程式部署至 Amazon EKS](deploy-tut-eks.md)，您會在開發機器的終端機視窗中看到類似以下的錯誤訊息：

`Unable to connect to the server: dial tcp: lookup long-string.gr7.us-west-2.eks.amazonaws.com on 1.2.3.4:5: no such host`

**可能的修正：**

此錯誤通常表示`kubectl`公用程式用來連線至 Amazon EKS 叢集的登入資料已過期。若要解決此問題，請在終端機提示中輸入下列命令來重新整理憑證：

```
aws eks update-kubeconfig --name codecatalyst-eks-cluster --region us-west-2
```

其中：
+ *codecatalyst-eks-cluster* 會取代為您的 Amazon EKS 叢集名稱。
+ *us-west-2* 被部署叢集的 AWS 區域取代。

## 為什麼視覺化編輯器中缺少 CodeDeploy 欄位？
<a name="troubleshooting-workflows-codedeploy"></a>

**問題**：您正在使用[部署到 Amazon ECS](deploy-action-ecs.md) 動作，而且在工作流程的視覺化編輯器中看不到 CodeDeploy ** AppSpec 等 CodeDeploy ** 欄位。此問題可能是因為您在服務欄位中指定的 Amazon ECS **服務**未設定為執行藍/綠部署。

**可能的修正：**
+ 在**部署至 Amazon ECS 動作的組態索引標籤上，選擇不同的 Amazon ECS** 服務。 ****如需詳細資訊，請參閱[使用工作流程部署至 Amazon ECS](deploy-action-ecs.md)。
+ 設定選取的 Amazon ECS 服務來執行藍/綠部署。如需設定藍/綠部署的詳細資訊，請參閱《*Amazon Elastic Container Service 開發人員指南*》中的[使用 CodeDeploy 進行藍/綠部署](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)。

## 如何修正 IAM 功能錯誤？
<a name="troubleshooting-workflows-capabilities"></a>

**問題**：您正在使用[部署 CloudFormation 堆疊](deploy-action-cfn.md)動作，而且您會在**部署 CloudFormation 堆疊**動作的日誌`##[error] requires capabilities: [capability-name]`中看到 。

**可能的修正**：請完成下列程序，將 功能新增至工作流程定義檔案。如需 IAM 功能的詳細資訊，請參閱《[IAM 使用者指南》中的在 CloudFormation 範本中確認 IAM 資源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)。 **

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

**使用視覺化編輯器新增 IAM 功能**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 選擇您的專案。

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

1. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

1. 選擇**編輯**。

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

1. 在工作流程圖表中，選擇**部署 CloudFormation 堆疊**動作。

1. 選擇 **Configuration** (組態) 索引標籤。

1. 在底部，選擇**進階 - 選用**。

1. 在**功能**下拉式清單中，選取錯誤訊息中所提及功能的核取方塊。如果清單中無法使用此功能，請使用 YAML 編輯器來新增此功能。

1. （選用） 選擇**驗證**以在遞交之前驗證工作流程的 YAML 程式碼。

1. 選擇**遞交**，輸入遞交訊息，然後再次選擇**遞交**。

1. 如果新的工作流程執行未自動啟動，請手動執行工作流程，以查看變更是否修正錯誤。如需手動執行工作流程的詳細資訊，請參閱 [手動啟動工作流程執行](workflows-manually-start.md)。

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

**使用 YAML 編輯器新增 IAM 功能**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 選擇您的專案。

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

1. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

1. 選擇**編輯**。

1. 選擇 **YAML**。

1. 在**部署 CloudFormation 堆疊**動作中，新增`capabilities`屬性，如下所示：

   ```
   DeployCloudFormationStack:
     Configuration:
       capabilities: capability-name
   ```

   將 *capability-name* 取代為錯誤訊息中顯示的 IAM 功能名稱。使用逗號和無空格來列出多個功能。如需詳細資訊，請參閱 中 `capabilities` 屬性的描述[「部署 CloudFormation 堆疊」動作 YAML](deploy-action-ref-cfn.md)。

1. （選用） 選擇**驗證**以在遞交之前驗證工作流程的 YAML 程式碼。

1. 選擇**遞交**，輸入遞交訊息，然後再次選擇**遞交**。

1. 如果新的工作流程執行未自動啟動，請手動執行工作流程，以查看變更是否修正錯誤。如需手動執行工作流程的詳細資訊，請參閱 [手動啟動工作流程執行](workflows-manually-start.md)。

------

## 如何修正「npm 安裝」錯誤？
<a name="troubleshooting-workflows-npm"></a>

**問題**：您的[AWS CDK 部署動作](cdk-dep-action.md)或[AWS CDK 引導操作](cdk-boot-action.md)失敗並發生錯誤`npm install`。可能會發生此錯誤，因為您將 AWS CDK 應用程式相依性儲存在私有節點套件管理員 (npm) 登錄檔中，該登錄檔無法由 動作存取。

**可能的修正**：使用以下指示，使用其他登錄檔和身分驗證資訊來更新 AWS CDK 應用程式的 `cdk.json` 檔案。

**開始之前**

1. 為您的身分驗證資訊建立秘密。您將在 `cdk.json` 檔案中參考這些秘密，而不是提供純文字對等項目。若要建立秘密：

   1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

   1. 選擇您的專案。

   1. 在導覽窗格中，選擇 **CI/CD**，然後選擇**秘密**。

   1. 使用下列屬性建立兩個秘密：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/troubleshooting-workflows.html)

      如需秘密的詳細資訊，請參閱 [使用秘密遮罩資料](workflows-secrets.md)。

1. 將秘密新增為 AWS CDK 動作的環境變數。動作會在執行時以實際值取代變數。若要新增秘密：

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

   1. 選擇工作流程的名稱。您可以依定義工作流程的來源儲存庫或分支名稱進行篩選，或依工作流程名稱或狀態進行篩選。

   1. 選擇**編輯**。

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

   1. 在工作流程圖表中，選擇您的 AWS CDK 動作。

   1. 選擇**輸入**索引標籤。

   1. 新增具有下列屬性的兩個變數：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/troubleshooting-workflows.html)

      您現在有兩個變數，其中包含對秘密的參考。

   您的工作流程定義檔案 YAML 程式碼看起來應該類似以下內容：
**注意**  
下列程式碼範例來自**AWS CDK 引導**操作；**AWS CDK 部署**動作看起來會類似。

   ```
   Name: CDK_Bootstrap_Action
   SchemaVersion: 1.0
   Actions:
     CDKBootstrapAction:
       Identifier: aws/cdk-bootstrap@v2
       Inputs:
         Variables:
           - Name: NPMUSER
             Value: ${Secrets.npmUsername}
           - Name: NPMTOKEN
             Value: ${Secrets.npmAuthToken}
         Sources:
           - WorkflowSource
       Environment:
         Name: Dev2
         Connections:
           - Name: account-connection
             Role: codecatalystAdmin
       Configuration:
         Parameters:
           Region: "us-east-2"
   ```

   您現在可以在 `cdk.json` 檔案中使用 `NPMUSER`和 `NPMTOKEN`變數。前往下一個程序。

**更新您的 cdk.json 檔案**

1. 變更為 AWS CDK 專案的根目錄，然後開啟 `cdk.json` 檔案。

1. 尋找 `"app":` 屬性，並將其變更為包含以*紅色斜體*顯示的程式碼：
**注意**  
下列範例程式碼來自 TypeScript 專案。如果您使用的是 JavaScript 專案，程式碼看起來會類似，但並不相同。

   ```
   {
     "app": "npm set registry=https://your-registry/folder/CDK-package/ --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:always-auth=true --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:_authToken=\"${NPMUSER}\":\"${NPMTOKEN}\" && npm install  && npx ts-node --prefer-ts-exts bin/hello-cdk.ts|js",
     "watch": {
       "include": [
         "**"
       ],
       "exclude": [
         "README.md",
         "cdk*.json",
         "**/*.d.ts",
         "**/*.js",
         "tsconfig.json",
         "package*.json",
   ...
   ```

1. 在以*紅色斜體*反白顯示的程式碼中，取代：
   + *your-registry/folder/CDK-package/* 搭配私有登錄檔中 AWS CDK 專案相依性的路徑。
   + *hello-cdk.ts\$1.js*，包含您的進入點檔案名稱。視您使用的語言而定，這可能是 `.ts`(TypeScript) 或 `.js`(JavaScript) 檔案。
**注意**  
動作會將 *NPMUSER* 和 *NPMTOKEN* 變數取代為您在 **Secrets** 中指定的 npm 使用者名稱和存取字符。

1. 儲存您的 `cdk.json` 檔案。

1. 手動重新執行動作，以查看變更是否修正錯誤。如需手動執行動作的詳細資訊，請參閱 [手動啟動工作流程執行](workflows-manually-start.md)。

## 為什麼多個工作流程具有相同的名稱？
<a name="troubleshooting-workflows-name"></a>



每個 儲存庫的每個分支都會存放工作流程。如果兩個不同的工作流程存在於不同的分支中，則可以有相同的名稱。在工作流程頁面中，您可以查看分支名稱來區分相同名稱的工作流程。如需詳細資訊，請參閱[使用 Amazon CodeCatalyst 中的分支組織您的原始程式碼](source-branches.md)。

![\[工作流程分支\]](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/images/flows/workflow-branch.png)


## 我可以將工作流程定義檔案存放在另一個資料夾中嗎？
<a name="troubleshooting-workflows-folder"></a>

否，您必須將所有工作流程定義檔案存放在 `.codecatalyst/workflows` 資料夾或該資料夾的子資料夾中。如果您將單一儲存庫與多個邏輯專案搭配使用，請將所有工作流程定義檔案放在 `.codecatalyst/workflows` 資料夾或其中一個子資料夾中，然後在觸發條件內使用**檔案變更**欄位 （視覺化編輯器） 或`FilesChanged`屬性 (YAML 編輯器），以在指定的專案路徑自動觸發工作流程。如需詳細資訊，請參閱[將觸發條件新增至工作流程](workflows-add-trigger-add.md)及[範例：具有推送、分支和檔案的觸發](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-multi)。

## 如何將動作依序新增至工作流程？
<a name="troubleshooting-workflows-visual"></a>

根據預設，當您將動作新增至工作流程時，它不會有相依性，而且會與其他動作平行執行。

如果您想要依序排列動作，您可以透過設定 `DependsOn` 欄位來設定另一個動作的相依性。您也可以設定 動作來取用成品或變數，這些成品或變數是其他動作的輸出。如需詳細資訊，請參閱[定序動作](workflows-depends-on.md)。

## 為什麼我的工作流程成功驗證，但在執行時間失敗？
<a name="troubleshooting-workflows-validation"></a>

如果您使用 `Validate` 按鈕驗證工作流程，但您的工作流程仍然失敗，可能是因為驗證器有限制。

工作流程組態中有關 CodeCatalyst 資源的任何錯誤，例如秘密、環境或機群，都不會在遞交期間註冊。如果使用任何無效的參考，只有在工作流程執行時才會識別錯誤。同樣地，如果您的動作組態中有任何錯誤，例如缺少必要欄位或動作屬性的錯別字，只有在工作流程執行時才會識別這些錯誤。如需詳細資訊，請參閱[建立工作流程](workflows-create-workflow.md)。

## 自動探索不會發現我的動作的任何報告
<a name="troubleshooting-reports-auto-discovery"></a>

**問題：**我為執行測試的動作設定了自動探索，但 CodeCatalyst 不會發現任何報告。

**可能的修正：**這可能是由許多問題引起的。嘗試下列一或多個解決方案：
+ 請確定用於執行測試的工具會以 CodeCatalyst 了解的其中一種格式產生輸出。例如，如果您`pytest`想要允許 CodeCatalyst 探索測試和程式碼涵蓋範圍報告，請包含下列引數：

  ```
  --junitxml=test_results.xml --cov-report xml:test_coverage.xml
  ```

  如需詳細資訊，請參閱[品質報告類型](test-workflow-actions.md#test-reporting)。
+ 請確定輸出的副檔名與選擇的格式一致。例如，設定 `pytest`以`JUnitXML`產生 格式的結果時，請檢查副檔名是否為 `.xml`。如需詳細資訊，請參閱[品質報告類型](test-workflow-actions.md#test-reporting)。
+ 請確定 `IncludePaths` 已設定為包含整個檔案系統 (`**/*`)，除非您刻意排除特定資料夾。同樣地，`ExcludePaths`請勿排除您預期報告所在的目錄。
+ 如果您手動將報告設定為使用特定輸出檔案，它將被排除在自動探索之外。如需詳細資訊，請參閱[品質報告 YAML 範例](test-config-action.md#test.success-criteria-example)。
+ 自動探索可能找不到報告，因為動作在產生任何輸出之前失敗。例如，組建在執行任何單元測試之前可能已失敗。

## 設定成功條件後，自動探索的報告上的動作失敗
<a name="troubleshooting-success-auto-discovery"></a>

**問題：**當我啟用自動探索並設定成功條件時，有些報告不符合成功條件，導致動作失敗。

**可能的修正：**若要解決此問題，請嘗試下列一或多個解決方案：
+ 修改 `IncludePaths`或 `ExcludePaths`以排除您不感興趣的報告。
+ 更新成功條件以允許所有報告通過。例如，如果發現兩個報告具有 50% 的折線涵蓋範圍，另一個報告具有 70% 的折線涵蓋範圍，請將最小折線涵蓋範圍調整為 50%。如需詳細資訊，請參閱[成功條件](test-best-practices.md#test.best-success-criteria)
+ 將失敗的報告轉換為手動設定的報告。這可讓您為該特定報告設定不同的成功條件。如需詳細資訊，請參閱[設定報告的成功條件](test-config-action.md#test.success-criteria)。

## 自動探索會產生我不想的報告
<a name="troubleshooting-unwanted-auto-discovery"></a>

**問題：**當我啟用自動探索時，它會產生我不想的報告。例如，CodeCatalyst 會為存放在 的應用程式相依性中包含的檔案產生程式碼涵蓋範圍報告`node_modules`。

**可能的修正：**您可以調整`ExcludePaths`組態以排除不需要的檔案。例如，若要排除 `node_modules`，請新增 `node_modules/**/*`。如需詳細資訊，請參閱[包含/排除路徑](test-best-practices.md#test.best-include-exclude)。

## 自動探索會針對單一測試架構產生許多小型報告
<a name="troubleshooting-reports-combined"></a>

**問題：**當我使用特定測試和程式碼涵蓋範圍報告架構時，我注意到自動探索會產生大量報告。例如，使用 [Maven Surefire 外掛程式](https://maven.apache.org/surefire/maven-surefire-plugin/)時，自動探索會為每個測試類別產生不同的報告。

**可能的修正：**您的架構可能可以將輸出彙總為單一檔案。例如，如果您使用 Maven Surefire 外掛程式，您可以使用 手動`npx junit-merge`彙總檔案。完整的表達式可能如下所示：

```
mvn test; cd test-package-path/surefire-reports && npx junit-merge -d ./ && rm *Test.xml
```

## CI/CD 下列出的工作流程與來源儲存庫中的工作流程不相符
<a name="troubleshooting-workflow-source"></a>

**問題：****CI/CD**、工作流程頁面上顯示的工作流程與[來源儲存庫](source.md)中`~/.codecatalyst/workflows/`資料夾中的**工作流程**不相符。您可能會看到以下不相符：
+ 工作流程會出現在**工作流程**頁面上，但來源儲存庫中不存在對應的工作流程定義檔案。
+ 您的來源儲存庫中存在工作流程定義檔案，但對應的工作流程不會出現在**工作流程**頁面上。
+ 來源儲存庫和工作流程頁面中都存在**工作流程**，但兩者不同。

如果**工作流程**頁面沒有時間重新整理，或超過工作流程配額，可能會發生此問題。

**可能的修正：**
+ 等候。在遞交來源之後，您通常必須等待兩到三秒，才能在**工作流程**頁面上看到變更。
+ 如果您已超過工作流程配額，請執行下列其中一項操作：
**注意**  
若要判斷是否超過工作流程配額，請檢閱 [CodeCatalyst 中工作流程的配額](workflows-quotas.md)，並針對來源儲存庫或工作流程頁面上的工作流程交叉檢查記錄**的**配額。沒有錯誤訊息指出超過配額，因此您必須自行調查。
  + 如果您已超過**每個空間配額的工作流程數量上限**，請刪除一些工作流程，然後對工作流程定義檔案執行測試遞交。測試遞交的範例可能是將空間新增至 檔案。
  + 如果您超過**工作流程定義檔案大小配額上限**，請變更工作流程定義檔案以減少其長度。
  + 如果您已超過**單一來源事件配額中處理的工作流程檔案數目上限**，請執行數個測試遞交。修改少於每個遞交中工作流程的數量上限。

## 我無法建立或更新工作流程
<a name="troubleshooting-workflows-branchrules"></a>

**問題：**我想要建立或更新工作流程，但在嘗試遞交變更時看到錯誤。

**可能的修正：**視您在專案或空間中的角色而定，您可能沒有將程式碼推送至專案中來源儲存庫的許可。工作流程的 YAML 檔案會存放在 儲存庫中。如需詳細資訊，請參閱[工作流程定義檔案](workflows-concepts.md#workflows-concepts-workflows-def)。**空間管理員**角色、**專案管理員**角色和**貢獻者**角色都具有將程式碼遞交和推送至專案中儲存庫的許可。

如果您有 **Contributor **角色，但無法建立或遞交變更至特定分支中的工作流程 YAML，該分支可能會設定分支規則，以防止具有該角色的使用者將程式碼推送至該特定分支。嘗試在不同分支中建立工作流程，或將您的變更遞交至不同的分支。如需詳細資訊，請參閱[使用分支規則管理分支的允許動作](source-branches-branch-rules.md)。