О тестировании запросов в VS Code
Чтобы гарантировать, что запросы CodeQL создают ожидаемые результаты, можно выполнить тесты, которые сравнивают ожидаемые результаты запроса с фактическими результатами.
Расширение CodeQL автоматически регистрируется в представлении "Тестирование". Это представление отображает все тесты, найденные в текущей рабочей области, и предоставляет пользовательский интерфейс для изучения и выполнения тестов в рабочей области.
Дополнительные сведения о создании тестов CodeQL см. в разделе "Тестирование пользовательских запросов".
Чтобы просмотреть более подробные выходные данные выполнения модульных тестов, откройте журнал тестов CodeQL. Дополнительные сведения см. в разделе "Доступ к журналам".
Тестирование результатов запросов
-
В Visual Studio Codeоткройте представление "Тестирование" на боковой панели.
-
Чтобы выполнить определенный тест, наведите указатель мыши на имя файла или папки и нажмите кнопку воспроизведения. Чтобы запустить все тесты в рабочей области, нажмите кнопку воспроизведения в верхней части представления. Если тест занимает слишком много времени, нажмите кнопку остановки в верхней части представления, чтобы отменить тест.
-
Значки показывают, прошел ли тест или завершился сбоем. Если он завершился ошибкой, щелкните тест в разделе "Результаты теста", чтобы отобразить различия между ожидаемыми выходными данными и фактическими выходными данными.
-
Сравните результаты. Если вы хотите обновить тест с фактическими выходными данными, щелкните правой кнопкой мыши тест в представлении "Тестирование" и нажмите кнопку "Принять выходные данные теста".
Мониторинг производительности запросов
Производительность запросов важна при выполнении запроса в больших базах данных или в составе системы непрерывной интеграции.
Если вы хотите проверить производительность запросов, включите параметр "Выполнение запросов: отладка", чтобы включить количество времени и кортежей. Затем это будет отображаться в журналах на вкладке CodeQL "Сервер запросов" представления "Вывод". Количество кортежей полезно, так как оно указывает размер предикатов , вычисляемых запросом. Дополнительные сведения об изменении параметров см. в разделе "Настройка параметров".
При оценке запроса сервер запросов кэширует предикаты, которые он вычисляет. Поэтому при сравнении производительности двух вычислений необходимо выполнить CodeQL: очистить кэш для очистки кэша сервера запросов перед каждым запуском. Это гарантирует сравнение эквивалентных данных.
Дополнительные сведения о мониторинге производительности запросов CodeQL см. в разделе "Устранение неполадок с производительностью запросов" и "Оценка программ QL" в документации по CodeQL.
Следующие шаги
Если вы уверены, что запрос находит результаты, которые нужно определить, можно использовать вариантный анализ для его выполнения в масштабе. Сведения о выполнении анализа в большом масштабе во многих базах данных CodeQLdatabase см. в разделе "Выполнение запросов CodeQL в масштабе с помощью анализа вариантов с несколькими репозиториями".