

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

# 在本地验证工作流程定义
<a name="workflows-validate-local"></a>

在调用之前，您可以使用工作流语言自己的工具验证工作流程定义 `CreateWorkflow` 要么 `CreateWorkflowVersion`。它可以捕获语法错误和引用等无法解决的问题。

本地验证会根据工作流程语言检查您的定义，而不是根据工作流程语言检查您的定义 HealthOmics 要求。对于 linters 来说 HealthOmics 在工作流程创建期间运行，请参阅 [工作流程提示器已输入 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** — 安装 [下一步](https://docs.seqera.io/nextflow/install) v25.10 或更高版本。较早的版本要么没有 `nextflow lint` 命令或报告没有警告。
+ **CWL** — 安装 [cwltool](https://cwltool.readthedocs.io/en/latest/)，CWL 标准的参考实施方案。

**注意**  
你的运行版本可以使用比你使用的 Lint 版本更旧的 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}}
```

------

对于多文件包，使用与您上传到的 ZIP 存档中相同的相对路径将文件布局在磁盘上 HealthOmics。引用是根据声明它们的文件解析的，而不是你运行命令的目录来解析的。有关主文件要求，请参见 [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` 输出。