Skip to main content

解析测试

[深层管道] 在给定目录中查找 QL 单元测试。

谁可以使用此功能?

GitHub CodeQL 在安装后按用户授权。 根据许可证限制,只能将 CodeQL 用于某些任务。 有关详细信息,请参阅“关于 CodeQL CLI”。

如果你有 GitHub Advanced Security 许可证,则可以使用 CodeQL 进行自动分析、持续集成和持续交付。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

本文内容

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

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

摘要

Shell
codeql resolve tests <options>... -- <test|dir>...

说明

[深层管道] 在给定目录中查找 QL 单元测试。

此管道命令负责将运行 QL 单元测试的子命令的命令行参数扩展到要执行的单个 .ql 和 .qlref 文件的实际列表。

选项

主要选项

<test|dir>...

每个参数是下列项之一:

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

--slice=<N/M>

[高级] 将测试用例划分为 M 个大小大致相等的切片,并且只处理其中第 N 个切片。 这可用于测试过程的手动并行化。

--[no-]strict-test-discovery

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

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

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

--format=<fmt>

选择输出格式:text(默认)或 json

常用选项

-h, --help

显示此帮助文本。

-J=<opt>

[高级] 为运行命令的 JVM 提供选项。

(请注意,无法正确处理包含空格的选项。)

-v, --verbose

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

-q, --quiet

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

--verbosity=<level>

[高级] 将详细级别显式设置为“错误”、“警告”、“进度”、“进度+”、“进度++”、“进度+++”之一。 重写 -v-q

--logdir=<dir>

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

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

--common-caches=<dir>

[高级] 控制磁盘上缓存数据的位置,此位置会在多次运行 CLI(例如下载的 QL 包和已编译查询计划)期间暂留。 如果未明确设置,则默认为用户主目录中名为 .codeql 的目录;如果尚不存在,则会创建该目录。

v2.15.2 起可用。