# 测试确认

接受失败的单元测试的结果。

> \[!NOTE]
> 此内容描述了 CodeQL CLI 的最新版本。 有关此版本的详细信息，请参阅 <https://github.com/github/codeql-cli-binaries/releases> 。
>
> 若要查看早期版本中此命令可用选项的详细信息，请在终端中使用 <span style="white-space: nowrap;">`--help`</span> 选项运行命令。

## 概要

```shell copy
codeql test accept <options>... -- <test|dir>...
```

## Description

接受失败的单元测试的结果。

该命令十分便利，它将 `.actual` 因失败的测试而留下的 [](/zh/code-security/reference/code-scanning/codeql/codeql-cli-manual/test-run) 文件重命名为 `.expected`，以便将来在提供相同输出的测试上运行时被视为通过。 它的作用也可以通过普通的文件操作来实现，但你可能会发现它的语法对于这种特殊情况更有用。

命令行参数指定一个或多个\_测试\_ — 即 `.ql(ref)` 文件 — 该命令会自动从中派生 `.actual` 文件的名称。 任何没有 `.actual` 文件的测试都将被静默忽略，这使得轻松接受先前运行中\_失败\_测试的结果变得简单。

## 选项

### 主要选项

#### `<test|dir>...`

每个参数是下列项之一：

* 定义要运行的测试的 `.ql` 或 `.qlref` 文件。
* 将在其中以递归方式搜索要运行的测试的目录。

#### `--slice=<N/M>`

```
          \[高级] 将测试用例分成 _M_ 个大致等大的分片，仅处理其中第 _&#x4E;_&#x74;h 个。 这可用于测试过程的手动并行化。
```

#### `--[no-]strict-test-discovery`

```
          \[高级] 仅使用可明确标识为测试的查询。
```

此模式尝试将定义单元测试的 `.ql` 文件和旨在用作有用查询的 `.ql` 文件进行区分。 此工具由 IDE 等工具使用，这些工具需要在不依靠之前对目录树中文件排列方式的了解来标识目录树中的所有单元测试。

在其 `qlpack.yml` 声明 `tests` 目录的 QL 包中，该目录中的所有 `.ql` 文件都被视为测试，其外部的 `.ql` 文件会被忽略。 在未声明 `tests` 目录的 QL 包中，`.ql` 文件仅在具有相应的 `.expected` 文件时才会被标识为测试。

为了保持一致性，`.qlref` 文件受到与 `.ql` 文件相同的规则限制，即使 `.qlref` 文件实际上不能是“非测试”也是如此。

### 常用选项

#### `-h, --help`

显示此帮助文本。

#### `-J=<opt>`

```
          \[高级] 向运行命令的 JVM 提供选项。
```

（请注意，无法正确处理包含空格的选项。）

#### `-v, --verbose`

以增量方式增加输出的进度消息数。

#### `-q, --quiet`

以增量方式减少输出的进度消息数。

#### `--verbosity=<level>`

```
          \[高级] 明确将详细级别设置为 errors、warnings、progress、progress+、progress++、progress+++ 之一。 重写 `-v` 和 `-q`。
```

#### `--logdir=<dir>`

```
          \[高级] 将详细日志写入指定目录中的一个或多个文件，生成的文件名包含时间戳和正在运行的子命令名称。
```

（要使用可以完全控制的名称编写日志文件，请根据需要提供 `--log-to-stderr` 并重定向 stderr。）

#### `--common-caches=<dir>`

```
          \[高级] 控制磁盘上缓存数据的位置，这些数据将在 CLI 的多次运行之间保留，例如下载的 QL 包和编译的查询计划。 如果未明确设置，则默认为用户主目录中名为 `.codeql` 的目录；如果尚不存在，则会创建该目录。
```

自 `v2.15.2` 起可用。