Skip to main content

Тестирование запросов CodeQL в Visual Studio Code

Модульные тесты можно выполнять для запросов CodeQL с помощью расширения Visual Studio Code .

О тестировании запросов в VS Code

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

Расширение CodeQL автоматически регистрируется в представлении "Тестирование". Это представление отображает все тесты, найденные в текущей рабочей области, и предоставляет пользовательский интерфейс для изучения и выполнения тестов в рабочей области.

Дополнительные сведения о создании тестов CodeQL см. в разделе "Тестирование пользовательских запросов".

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

Тестирование результатов запросов

  1. В Visual Studio Codeоткройте представление "Тестирование" на боковой панели.

  2. Чтобы выполнить определенный тест, наведите указатель мыши на имя файла или папки и нажмите кнопку воспроизведения. Чтобы запустить все тесты в рабочей области, нажмите кнопку воспроизведения в верхней части представления. Если тест занимает слишком много времени, нажмите кнопку остановки в верхней части представления, чтобы отменить тест.

    Снимок экрана: представление "Тестирование" с кнопкой "Выполнить тест" (для выполнения всех тестов), описанной в темно-оранжевый цвет.

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

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

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

Мониторинг производительности запросов

Производительность запросов важна при выполнении запроса в больших базах данных или в составе системы непрерывной интеграции.

Если вы хотите проверить производительность запросов, включите параметр "Выполнение запросов: отладка", чтобы включить количество времени и кортежей. Затем это будет отображаться в журналах на вкладке CodeQL "Сервер запросов" представления "Вывод". Количество кортежей полезно, так как оно указывает размер предикатов , вычисляемых запросом. Дополнительные сведения об изменении параметров см. в разделе "Настройка параметров".

При оценке запроса сервер запросов кэширует предикаты, которые он вычисляет. Поэтому при сравнении производительности двух вычислений необходимо выполнить CodeQL: очистить кэш для очистки кэша сервера запросов перед каждым запуском. Это гарантирует сравнение эквивалентных данных.

Дополнительные сведения о мониторинге производительности запросов CodeQL см. в разделе "Устранение неполадок с производительностью запросов" и "Оценка программ QL" в документации по CodeQL.

Следующие шаги

Если вы уверены, что запрос находит результаты, которые нужно определить, можно использовать вариантный анализ для его выполнения в масштабе. Сведения о выполнении анализа в большом масштабе во многих базах данных CodeQLdatabase см. в разделе "Выполнение запросов CodeQL в масштабе с помощью анализа вариантов с несколькими репозиториями".