

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

# 在本機驗證工作流程定義
<a name="workflows-validate-local"></a>

您可以在呼叫 `CreateWorkflow`或 之前，使用工作流程語言自己的工具來驗證工作流程定義`CreateWorkflowVersion`。它會攔截語法錯誤和無法解決的參考等問題。

本機驗證會根據工作流程語言檢查您的定義，而不是 HealthOmics 要求。如需 HealthOmics 在工作流程建立期間執行的 linter，請參閱 [HealthOmics 中的工作流程文字](workflows-linter.md)。

## 安裝驗證器
<a name="workflows-validate-local-install"></a>

驗證程式是 AWS 未維護的第三方軟體。
+ **WDL** – 安裝 [miniwdl](https://miniwdl.readthedocs.io/en/latest/getting_started.html)，這是適用於 WDL 的本機執行器和開發人員工具組。
+ **Nextflow** – 安裝 [Nextflow](https://docs.seqera.io/nextflow/install) v25.10 或更新版本。舊版沒有 `nextflow lint`命令或報告沒有警告。
+ **CWL** – 安裝 [cwltool](https://cwltool.readthedocs.io/en/latest/)，這是 CWL 標準的參考實作。

**注意**  
您的執行可以使用比您使用的版本更舊的 Nextflow 版本。`nextflow lint` 命令會剖析您的執行可能不會使用的嚴格語法。因此，在您重寫定義以滿足語法調查結果之前，請檢查執行使用的語法版本，如 中所述[指定 Nextflow 語法版本](workflow-definition-nextflow.md#nextflow-syntax-version)。如需 HealthOmics 如何選取執行的 Nextflow 版本，請參閱 [Nextflow 版本](workflows-lang-versions.md#workflows-versions-p2)。

## 執行驗證程式
<a name="workflows-validate-local-run"></a>

針對主要定義檔案執行驗證程式，或針對包含驗證程式的目錄執行 Nextflow。

------
#### [ WDL ]

```
miniwdl check {{main-file}}
```

------
#### [ Nextflow ]

```
nextflow lint {{definition-directory}}
```

------
#### [ CWL ]

```
cwltool --validate {{main-file}}
```

------

對於多檔案套件，將檔案放在磁碟上，其相對路徑與上傳至 HealthOmics 的 ZIP 封存中具有的路徑相同。參考會相對於宣告它們的檔案解析，而不是您執行命令的目錄。如需主要檔案需求，請參閱 [HealthOmics 工作流程定義需求](workflow-defn-requirements.md)。

傳遞`nextflow lint`目錄而不是主檔案，以便它也檢查`nextflow.config`它不會從主檔案到達的 。

**注意**  
當您傳遞 時`-format`， 會`nextflow lint`重寫沒有錯誤的定義檔案。使用 v25.10 或更新版本進行格式化可能會產生舊版 Nextflow 拒絕的語法，因此除非您的執行使用您格式化的版本，否則請勿進行格式化。

## 讀取驗證結果
<a name="workflows-validate-local-results"></a>

miniwdl 並在報告錯誤時以非零狀態`nextflow lint`結束，但在僅報告警告時以零狀態結束，因此請讀取輸出，而不是依賴結束狀態。
+ **WDL** – miniwdl報告無法復原的第一個錯誤，或內嵌載入任何 lint 調查結果的每個文件的概述。
+ **Nextflow** – Nextflow 會報告每個錯誤和警告及其檔案、行和欄，並引用違規行。其結尾為發生錯誤的檔案計數，以及沒有錯誤的檔案計數，因此具有警告但沒有錯誤的檔案會視為沒有。若要變更報告格式，請傳遞 `-o`，例如 `-o json`。
+ **CWL** – cwltool報告檔案是有效的 CWL，或每個問題的檔案、行和欄驗證失敗。

**注意**  
Nextflow 版本報告的數量有所不同。Nextflow v26.04 計算其摘要中的警告，並將它們包含在`-o json`輸出中。Nextflow v25.10 只會在預設輸出中列印警告，並在摘要或其`-o json`輸出中不報告任何警告。