跳至主要内容

测试接受

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

谁可以使用此功能?

CodeQL 可用于以下类型的仓库

本文档内容

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

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

概要

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

描述

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

这是一个便利命令,它将 codeql test run 为失败测试留下的 .actual 文件重命名为 .expected,以便将来对产生相同输出的测试的运行将被视为通过。它所执行的操作也可以通过普通的文件夹操作来实现,但是您可能会发现它的语法对于这种情况更有用。

命令行参数指定一个或多个测试——也就是 .ql(ref) 文件——并且该命令会自动从这些文件中推导出 .actual 文件的名称。任何没有 .actual 文件的测试都将被静默忽略,这使得很容易只接受先前运行中失败测试的结果。

选项

主要选项

<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 文件相同的规则的限制。

常用选项

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