跳到主要内容

测试摘录

[内部] 为测试目录构建数据集。

谁可以使用此功能?

CodeQL 可用于以下类型的仓库

本文内容

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

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

概要

Shell
codeql test extract <options>... -- <testDir>

描述

[内部] 为测试目录构建数据集。

为指定的测试目录构建数据库,而无需实际运行任何测试查询。输出用于执行测试查询的原始 QL 数据集的路径。

选项

主要选项

<testDir>

[必填] 测试目录的路径。

--database=<dir>

覆盖正在创建的数据库的位置。默认情况下,它将是一个子目录,其名称派生自测试目录本身的名称,并附加“.testproj”。

--search-path=<dir>[:<dir>...]

可以找到提取器包的目录列表。这些目录可以是提取器包本身,也可以是包含提取器作为直接子目录的目录。

如果路径包含多个目录树,则它们的顺序定义了它们之间的优先级:如果在多个目录树中匹配目标语言,则先给出的目录树优先。

CodeQL 工具链本身捆绑的提取器将始终被找到,但如果您需要使用单独分发的提取器,则需要提供此选项(或者,最好在每个用户的配置文件中设置--search-path)。

(注意:在 Windows 上,路径分隔符是;)。

--cleanup

删除测试数据库,而不是创建它。

--[no-]show-extractor-output

[高级] 显示创建测试数据库的提取器脚本的输出。这在开发或编辑测试用例时可能很有用。注意,如果您将此与多个线程一起使用,则可能会导致重复或格式错误的输出!

--[no-]check-undefined-labels

[高级] 报告未定义标签的错误。

--[no-]check-unused-labels

[高级] 报告未使用标签的错误。

--[no-]check-repeated-labels

[高级] 报告重复标签的错误。

--[no-]check-redefined-labels

[高级] 报告已重新定义标签的错误。

--[no-]check-use-before-definition

[高级] 报告在定义之前使用的标签的错误。

--[no-]fail-on-trap-errors

[高级] 如果在陷阱导入期间发生错误,则退出非零值。

--[no-]include-location-in-star

[高级] 构造编码它们来自的 TRAP 文件中的位置的实体 ID。这对于调试 TRAP 生成器很有用,但在数据集中会占用大量空间。

--[no-]linkage-aware-import

[高级] 控制 codeql 数据集导入 是链接感知的(默认)还是不是。在数据库创建的这一部分消耗过多内存的项目中,禁用此选项可以帮助它们取得进展,但代价是数据库的完整性。

v2.15.3 起可用。

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