Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Справочные файлы запросов

С помощью ссылочных файлов запросов можно определить расположение запроса, который требуется выполнить в тестах.

GitHub CodeQL лицензируется для каждого пользователя после установки. CodeQL можно использовать только для определенных задач с ограничениями лицензии. Дополнительные сведения см. в разделе Сведения о CodeQL CLI.

Если у вас есть лицензия на GitHub Advanced Security, вы можете использовать CodeQL для автоматического анализа, непрерывной интеграции и непрерывной поставки. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

Примечание: Эта статья была перенесена с веб-сайта документации CodeQL в январе 2023 г.

Сведения о файлах ссылок запросов

Файл ссылки на запрос — это текстовый файл, определяющий расположение одного запроса для тестирования.

Файл ссылки на запрос используется, если требуется указать test run подкоманде выполнить запрос, который не является частью тестового каталога. Существует два способа указать запросы, которые нужно выполнять в качестве тестов:

  1. Используйте файл ссылки на запрос, чтобы указать расположение проверяемого запроса. Это полезно при создании тестов для запросов оповещений и путей, предназначенных для выявления проблем в реальных базах кода. Вы можете создать несколько каталогов тестового кода, каждый из которых будет посвящен различным аспектам запроса. Затем необходимо добавить файл ссылки на запрос в каждый каталог тестового кода, чтобы указать тестируемый запрос.
  2. Добавьте запрос непосредственно в каталог тестов. Обычно это полезно при явном написании запросов для проверки поведения библиотек QL. Часто эти запросы содержат всего несколько вызовов предикатов библиотеки, упаковав их в инструкцию select , чтобы их выходные данные можно было протестировать.

Определение файла ссылок запроса

Каждый файл .qlrefссылок запроса содержит одну строку, которая определяет, где найти один запрос. Расположение должно быть определено относительно корня пакета CodeQL, содержащего запрос. Обычно это либо пакет CodeQL, содержащий .qlrefпакет , пакет CodeQL, указанный в dependencies блоке для тестового пакета, либо транзитивная зависимость пакета CodeQL.

Чтобы обеспечить совместимость между системами, следует использовать косую черту в пути ко всем операционным системам.

Пример

Файл ссылки на запрос для тестирования запроса оповещения JavaScript: DeadAngularJSEventListener.qlref

Файл qlpack.yml для https://github.com/github/codeql/blob/main/javascript/ql/test/qlpack.ymlпакета CodeQL в определяется javascript/ql/test codeql/javascript-queries как зависимость. Поэтому файл ссылки на запрос определяет расположение запроса относительно codeql/javascript-queries пакета CodeQL:

AngularJS/DeadAngularJSEventListener.ql