{"meta":{"title":"тестовое выполнение","intro":"Запустите модульные тесты для запросов QL.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/code-security","title":"Безопасность и качество кода"},{"href":"/ru/enterprise-cloud@latest/code-security/reference","title":"Reference"},{"href":"/ru/enterprise-cloud@latest/code-security/reference/code-scanning","title":"Проверка кода"},{"href":"/ru/enterprise-cloud@latest/code-security/reference/code-scanning/codeql","title":"CodeQL"},{"href":"/ru/enterprise-cloud@latest/code-security/reference/code-scanning/codeql/codeql-cli-manual","title":"Руководство по cli CodeQL"},{"href":"/ru/enterprise-cloud@latest/code-security/reference/code-scanning/codeql/codeql-cli-manual/test-run","title":"тестовое выполнение"}],"documentType":"article"},"body":"# тестовое выполнение\n\nЗапустите модульные тесты для запросов QL.\n\n> \\[!NOTE]\n> Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье <https://github.com/github/codeql-cli-binaries/releases>.\n>\n> Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с <span style=\"white-space: nowrap;\">`--help`</span> параметром в терминале.\n\n## Synopsis\n\n```shell copy\ncodeql test run [--threads=<num>] [--ram=<MB>] <options>... -- <test|dir>...\n```\n\n## Description\n\nЗапустите модульные тесты для запросов QL.\n\n## Options\n\n### Основные параметры\n\n#### `<test|dir>...`\n\nКаждый аргумент является одним из следующих:\n\n* Файл `.ql` или `.qlref` файл, определяющий тест для выполнения.\n* Каталог, который будет выполняться рекурсивно для выполнения тестов.\n\n#### `--failing-exitcode=<code>`\n\n```\n          \\[Дополнительно] Задайте код выхода, чтобы создать, если возникают сбои. Обычно 1, но инструмент, который анализирует выходные данные, может оказаться полезным, чтобы задать для него значение 0.\n```\n\n#### `--format=<fmt>`\n\nВыберите выходной формат. Возможные варианты:\n\n```\n          `text`\n          _(по умолчанию)_: читаемая пользователем текстовая отрисовка.\n\n          `json`: потоковый массив JSON объектов результатов теста.\n\n          `betterjson`: потокованный массив JSON объектов событий.\n\n          `jsonz`: поток отсчитываемых от нуля объектов результатов теста JSON.\n\n          `betterjsonz`: поток объектов событий JSON, завершаемых нулевым завершением.\n\n          `betterjson` Для каждого события и `betterjsonz` форматов имеется `type` свойство, указывающее тип события. Новые типы событий могут быть добавлены в будущем, поэтому потребители должны игнорировать любое событие с нераспознанным `kind` свойством.\n```\n\n#### `--[no-]keep-databases`\n\n```\n          \\[Дополнительно] Сохраните базы данных, извлеченные для выполнения тестовых запросов, даже если все тесты проходят в каталоге. (База данных всегда будет оставаться в наличии, когда имеются тесты, которые _завершаются сбоем_).\n```\n\n#### `--[no-]fast-compilation`\n\n```\n          \\[Не рекомендуется] \\[Дополнительно] Опущены особенно медленные шаги оптимизации при компиляции тестовых запросов.\n```\n\n#### `--[no-]learn`\n\n```\n          \\[Дополнительно] Если тест создает непредвиденные выходные данные, а не завершается сбоем, обновите его `.expected` файл в соответствии с фактическими выходными данными, таким образом, чтобы он прошел. Тесты по-прежнему могут завершиться ошибкой в этом режиме, например если создание тестовой базы данных для запроса не выполнено.\n```\n\n#### `--consistency-queries=<dir>`\n\n```\n          \\[Дополнительно] Каталог с запросами согласованности, которые будут выполняться для каждой тестовой базы данных. Эти запросы не должны создавать выходные данные (за исключением тех случаев, когда они находят проблему), если тестовый каталог не содержит `CONSISTENCY` подкаталог с файлом `.expected` . Это в основном полезно для тестовых средств извлечения.\n```\n\n#### `--[no-]check-databases`\n\n```\n          \\[Дополнительно] Выполните [проверку](/code-security/reference/code-scanning/codeql/codeql-cli-manual/dataset-check) набора данных codeql для каждой тестовой базы данных, созданной и сообщить о сбое, если он обнаруживает несоответствия. Это полезно при тестировании средств извлечения. Если проверка (временно!) должна завершиться ошибкой для определенной базы данных, поместите `DB-CHECK.expected` файл в тестовый каталог.\n```\n\n#### `--[no-]show-extractor-output`\n\n```\n          \\[Дополнительно] Отображение выходных данных из скриптов извлечения, создающих тестовые базы данных. Это может быть полезно при разработке или редактировании тестовых вариантов.\n```\n\nУбедитесь, что это может привести к повторяющимся или неправильно сформированным выходным данным, если вы используете это с несколькими потоками!\n\n#### `-M, --ram=<MB>`\n\nЗадайте общий объем ОЗУ, который должен быть разрешен для использования тестового средства выполнения.\n\n#### `--slice=<N/M>`\n\n```\n          \\[Дополнительно] Деление тестовых вариантов на __ м примерно равные срезы и обработка только _&#x4E;_&#x74; h из них. Это можно использовать для параллелизации процесса тестирования вручную.\n```\n\n#### `--[no-]strict-test-discovery`\n\n```\n          \\[Дополнительно] Используйте только запросы, которые можно строго определить как тесты.\n```\n\nЭтот режим пытается различать `.ql` файлы, определяющие модульные тесты и `.ql` файлы, которые должны быть полезными запросами. Этот параметр используется средствами, такими как идентификаторы, которые должны определять все модульные тесты в дереве каталогов без учета предыдущих знаний о том, как файлы в нем упорядочены.\n\nВ пакете QL, который `qlpack.yml` объявляет `tests` каталог, все `.ql` файлы в этом каталоге считаются тестами, а `.ql` файлы вне него игнорируются. В пакете QL, который не объявляет `tests` каталог, файл определяется как тест только в том случае, `.ql` если он имеет соответствующий `.expected` файл.\n\nДля согласованности файлы ограничены теми же правилами, что `.qlref` и файлы, `.ql` даже если `.qlref` файл не может быть не тестируемым.\n\n### Параметры поиска библиотек и средств извлечения, используемых тестами\n\n#### `--search-path=<dir>[:<dir>...]`\n\nСписок каталогов, в которых можно найти пакеты QL. Каждый каталог может быть пакетом QL (или пакетом пакетов, содержащих `.codeqlmanifest.json` файл в корневом каталоге) или непосредственным родительским элементом одного или нескольких таких каталогов.\n\nЕсли путь содержит несколько каталогов, их порядок определяет приоритет между ними: когда имя пакета, которое должно быть разрешено, совпадает с несколькими деревьями каталогов, то один из первых побед.\n\nУказывая это на получение репозитория CodeQL с открытым исходным кодом, должно работать при запросе одного из языков, которые живут там.\n\nЕсли вы проверили репозиторий CodeQL как одноуровневую цепочку инструментов CodeQL, вам не нужно предоставлять этот параметр; Такие каталоги с братом всегда будут искать пакеты QL, которые не удается найти в противном случае. (Если это значение по умолчанию не работает, настоятельно рекомендуется настроить `--search-path` один раз и для всех в файле конфигурации для каждого пользователя).\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n#### `--additional-packs=<dir>[:<dir>...]`\n\nЕсли указан этот список каталогов, они будут искать пакеты до тех, в которых они есть `--search-path`. Порядок между ними не имеет значения; Это ошибка, если имя пакета найдено в двух разных местах в этом списке.\n\nЭто полезно, если вы временно разрабатываете новую версию пакета, который также отображается в пути по умолчанию. С другой стороны, *не рекомендуется* переопределить этот параметр в файле конфигурации. Некоторые внутренние действия будут добавлять этот параметр на лету, переопределяя любое настроенное значение.\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n#### `--library-path=<dir>[:<dir>...]`\n\n```\n          \\[Дополнительно] Необязательный список каталогов, которые будут добавлены в путь поиска необработанных импортов для библиотек QL. Это следует использовать только в том случае, если вы используете библиотеки QL, которые не были упакованы как пакеты QL.\n```\n\n(Примечание. В Windows разделитель путей имеет значение `;`).\n\n#### `--dbscheme=<file>`\n\n```\n          \\[Advanced] Явно определяет, какие запросы dbscheme следует скомпилировать. Это должно быть дано только вызывающими, которые крайне уверены, что они делают.\n```\n\n#### `--compilation-cache=<dir>`\n\n```\n          \\[Дополнительно] Укажите дополнительный каталог для использования в качестве кэша компиляции.\n```\n\n#### `--no-default-compilation-cache`\n\n```\n          \\[Дополнительно] Не используйте кэши компиляции в стандартных расположениях, например в пакете QL, содержашем запрос или в каталоге цепочки инструментов CodeQL.\n```\n\n### Параметры настройки диспетчера пакетов CodeQL\n\n#### `--registries-auth-stdin`\n\nПроверка подлинности в реестрах контейнеров GitHub Enterprise Server путем передачи \\<registry\\_url>=\\<token> разделенного запятыми списка пар.\n\nНапример, можно передать `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2`\nдля проверки подлинности на двух экземплярах GitHub Enterprise Server.\n\nПри этом переопределяются переменные среды маркера токена CODEQL\\_И\\_AUTH и GITHUB\\_. Если вам нужно выполнить проверку подлинности только в реестре контейнеров github.com, можно вместо этого выполнить проверку подлинности с помощью более `--github-auth-stdin` простого параметра.\n\n#### `--github-auth-stdin`\n\nПроверка подлинности в реестре контейнеров github.com путем передачи маркера github.com GitHub Apps или личного маркера доступа через стандартные входные данные.\n\nЧтобы пройти проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передайте `--registries-auth-stdin` или используйте переменную среды AUTH CODEQL\\_REGISTRIES\\_.\n\nЭто переопределяет переменную среды токена GITHUB\\_.\n\n### Параметры управления компиляцией запросов\n\n#### `--no-release-compatibility`\n\n```\n          \\[Дополнительно] Используйте новейшие функции компилятора по стоимости переносимости.\n```\n\nВремя от времени новые функции языка QL и оптимизации оценщика будут поддерживаться оценщиком QL несколько выпусков, прежде чем они включены по умолчанию в компиляторе QL. Это помогает гарантировать, что производительность при разработке запросов в новом выпуске CodeQL может соответствовать немного более старым выпускам, которые по-прежнему могут использоваться для интеграции сканирования кода или CI.\n\nЕсли вы не заботитесь о том, что запросы совместимы с другими (более ранними или более поздними) выпусками CodeQL, иногда можно достичь небольшого объема дополнительной производительности с помощью этого флага, чтобы обеспечить последние улучшения в компиляторе раньше.\n\nВ выпусках, где нет последних улучшений для включения, этот параметр автоматически не делает ничего. Таким образом, его можно установить один раз и для всех в глобальном файле конфигурации CodeQL.\n\nДоступно с момента `v2.11.1`.\n\n### Параметры, управляющие оценкой тестовых запросов\n\n#### `--[no-]tuple-counting`\n\n```\n          \\[Дополнительно] Отображение счетчиков кортежей для каждого шага оценки в журналах оценщика запросов. Если этот `--evaluator-log` параметр указан, количество кортежей будет включено как в текстовые, так и структурированные журналы JSON, созданные командой. (Это может быть полезно для оптимизации производительности сложного кода QL.\n```\n\n#### `--timeout=<seconds>`\n\n```\n          \\[Дополнительно] Задайте длину времени ожидания для оценки запросов в секундах.\n```\n\nФункция времени ожидания предназначена для перехвата случаев, когда сложный запрос будет принимать \"навсегда\" для оценки. Это не эффективный способ ограничить общее время, которое может занять оценка запроса. Оценка будет продолжаться до тех пор, пока каждая отдельная часть вычисления завершается в течение времени ожидания. В настоящее время эти отдельные части времени являются \"слоями RA\" оптимизированного запроса, но это может измениться в будущем.\n\nЕсли время ожидания не задано или указано как 0, время ожидания не будет задано (за исключением тестового запуска codeql, где время ожидания по умолчанию составляет 5 минут).\n\n#### `-j, --threads=<num>`\n\nИспользуйте это множество потоков для оценки запросов.\n\nЗначение по умолчанию — 1. Вы можете передать 0 для использования одного потока на ядро на компьютере или -*N, чтобы оставить *неиспользуемые* ядра N* (за исключением того, что по-прежнему используется хотя бы один поток).\n\n### Параметры управления выходными данными структурированных журналов оценщика\n\n#### `--evaluator-log=<file>`\n\n```\n          \\[Дополнительно] Выходные структурированные журналы о производительности вычислителя в данный файл. Формат этого файла журнала подлежит изменению без уведомления, но будет потоком объектов JSON, разделенных двумя новыми символами (по умолчанию) или одним, если `--evaluator-log-minify` параметр передается. Используйте `codeql generate log-summary <file>` для создания более стабильной сводки по этому файлу и избегайте анализа файла напрямую. Файл будет перезаписан, если он уже существует.\n```\n\n#### `--evaluator-log-minify`\n\n```\n          \\[Дополнительно] Если `--evaluator-log` параметр передается, то этот параметр также свести к минимуму размер создаваемого журнала JSON за счет того, чтобы сделать его гораздо менее удобочитаемым.\n```\n\n### Параметры проверки импортированной ЛОВУШКИ\n\n#### `--[no-]check-undefined-labels`\n\n```\n          \\[Дополнительно] Сообщить об ошибках для неопределенных меток.\n```\n\n#### `--[no-]check-unused-labels`\n\n```\n          \\[Дополнительно] Сообщить об ошибках для неиспользуемых меток.\n```\n\n#### `--[no-]check-repeated-labels`\n\n```\n          \\[Дополнительно] Сообщить об ошибках для повторяющихся меток.\n```\n\n#### `--[no-]check-redefined-labels`\n\n```\n          \\[Дополнительно] Сообщить об ошибках для переопределенных меток.\n```\n\n#### `--[no-]check-use-before-definition`\n\n```\n          \\[Дополнительно] Сообщить об ошибках для меток, используемых перед их определением.\n```\n\n#### `--[no-]fail-on-trap-errors`\n\n```\n          \\[Дополнительно] Выход ненулевых, если ошибка возникает во время импорта ловушки.\n```\n\n#### `--[no-]include-location-in-star`\n\n```\n          \\[Дополнительно] Создание идентификаторов сущностей, кодируемых расположением в файле TRAP, из который они были получены. Может быть полезно для отладки генераторов TRAP, но занимает много места в наборе данных.\n```\n\n#### `--[no-]linkage-aware-import`\n\n```\n          \\[Дополнительно] Определяет, поддерживается ли [импорт](/code-security/reference/code-scanning/codeql/codeql-cli-manual/dataset-import) набора данных codeql с учетом _компоновки (по умолчанию)._ В проектах, где эта часть создания базы данных потребляет слишком много памяти, отключение этого параметра может помочь им выполняться за счет полноты базы данных.\n```\n\nДоступно с момента `v2.15.3`.\n\n### Распространенные параметры\n\n#### `-h, --help`\n\nОтображение этого текста справки.\n\n#### `-J=<opt>`\n\n```\n          \\[Дополнительно] Укажите параметр JVM, выполняя команду.\n```\n\n(Убедитесь, что параметры, содержащие пробелы, не будут обрабатываться правильно.)\n\n#### `-v, --verbose`\n\nПостепенно увеличьте число отображаемых сообщений о ходе выполнения.\n\n#### `-q, --quiet`\n\nПостепенно уменьшайте количество отображаемых сообщений о ходе выполнения.\n\n#### `--verbosity=<level>`\n\n```\n          \\[Дополнительно] Явным образом задайте уровень детализации на одну из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, хода выполнения+++. Переопределяет `-v` и `-q`.\n```\n\n#### `--logdir=<dir>`\n\n```\n          \\[Дополнительно] Запись подробных журналов в один или несколько файлов в указанном каталоге с созданными именами, включающими метки времени и имя выполняющегося подкоманда.\n```\n\n(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого предоставьте `--log-to-stderr` и перенаправите stderr по мере необходимости.)\n\n#### `--common-caches=<dir>`\n\n```\n          \\[Дополнительно] Управляет расположением кэшированных данных на диске, которые будут сохраняться между несколькими запусками интерфейса командной строки, такими как скачанные пакеты QL и скомпилированные планы запросов. Если этот параметр не задан явным образом, по умолчанию используется каталог с именем `.codeql` в домашнем каталоге пользователя; он будет создан, если он еще не существует.\n```\n\nДоступно с момента `v2.15.2`."}