此内容描述了 CodeQL CLI 的最新版本。有关此版本的更多信息,请参阅 https://github.com/github/codeql-cli-binaries/releases。
要在早期版本中查看此命令可用的选项的详细信息,请在终端中使用 --help
选项运行该命令。
概要
codeql test extract <options>... -- <testDir>
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
版本起可用。