Skip to main content

测试确认

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

���可以使用此功能?

CodeQL 可用于以下存储库类型:

在本文中

注意

此内容描述了 CodeQL CLI 的最���版本。 有关此版本的详细信息,请参阅 https://github.com/github/codeql-cli-binaries/releases

若要查看早期版本中此命令可用选项的详细信息,请在终端中使用 --help 选项运行命令。

概要

Shell
codeql test accept <options>... -- <test|dir>...

Description

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

该命令十分便利,它将 .actual 因失败的测试而留下的 文件重命名为 .expected,以便将来在提供相同输出的测试上运行时被视为通过。 它的作用也可以通过普通的文件操作来实现,但你可能会发现它的语法对于这种特殊情况更有用。

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

选项

主要选项

<test|dir>...

每个参数是下列项之一:

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

--slice=<N/M>

[高级] 将测试用例分成 M 个大致等大的分片,仅处理其中第 Nth 个。 这可用于测试过程的手动并行化。

--[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 起可用。