跳至主要内容

解决测试

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

谁可以使用此功能?

CodeQL 可用于以下代码库类型

本文内容

此内容描述了 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 文件相同的规则限制。

--format=<fmt>

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

常用选项

-h, --help

显示此帮助文本。

-J=<opt>

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

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

-v, --verbose

逐步增加打印的进度消息数量。

-q, --quiet

逐步减少打印的进度消息数量。

--verbosity=<level>

[高级] 将详细程度级别显式设置为错误、警告、进度、进度+、进度++、进度+++ 之一。覆盖 -v-q

--logdir=<dir>

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

(要写入您完全控制名称的日志文件,请改为提供 --log-to-stderr 并根据需要重定向标准错误。)

--common-caches=<dir>

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

v2.15.2 起可用。