Skip to main content

Enterprise Server 3.21 в настоящее время доступен в качестве кандидата на выпуск.

Запрос ссылочных файлов

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

Кто может использовать эту функцию?

CodeQL доступен для следующих типов репозитория:

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

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

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

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

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

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

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

Example

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

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

AngularJS/DeadAngularJSEventListener.ql

Другой пример см. в разделе Testing custom queries.