Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

查询引用文件

可以使用查询引用文件来定义要在测试中运行的查询的位置。

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

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

注意:本文已于 2023 年 1 月从 CodeQL 文档网站迁移。

关于查询引用文件

查询引用文件是文本文件,用于定义要测试的一个查询的位置。

如果要告知 test run 子命令运行不属于测试目录的查询,请使用查询引用文件。 可通过两种方式指定要作为测试运行的查询:

  1. 使用查询引用文件指定要测试的查询的位置。 在为旨在识别真实代码库中的问题的警报和路径查询创建测试时,这非常有用。 可以创建多个测试代码目录,每个目录都侧重于查询的不同方面。 然后将查询引用文件添加到每个测试代码目录,以指定要测试的查询。
  2. 将查询直接添加到测试目录。 在显式编写查询以测试 QL 库的行为时,这些查询通常很有用。 通常,这些查询只包含对库谓词的几个调用,将它们包装在一个 select 语句中,以便测试其输出。

定义查询引用文件

每个查询引用文件 (.qlref) 都包含一行,用于定义查找一个查询的位置。 必须相对于包含查询的 CodeQL 包的根位置来定义该位置。 通常,这是包含 .qlref 的 CodeQL 包、在测试包的 dependencies 块中指定的 CodeQL 包,或 CodeQL 包的传递依赖项。

应在所有操作系统的路径中使用正斜杠,以确保系统之间的兼容性。

示例

用于测试 JavaScript 警报查询的查询引用文件:DeadAngularJSEventListener.qlref

javascript/ql/test 处的 CodeQL 包的 qlpack.yml 文件 https://github.com/github/codeql/blob/main/javascript/ql/test/qlpack.ymlcodeql/javascript-queries 定义为依赖项。 因此,查询引用文件定义查询相对于 codeql/javascript-queries CodeQL 包的位置:

AngularJS/DeadAngularJSEventListener.ql

有关其他示例,请参阅测试自定义查询