c-cpp-cookies
  • Полезные материалы
    • About
  • Настройка окружения
    • Git
      • Git CLI
      • Git GUI
      • Git Web
      • Git в среде разработке
        • Visual Studio
        • Visual Studio Code
        • CLion
        • Qt Creator
    • Стандарты (они же ISO)
    • Qt about
    • IDE
      • Visual Studio Code
        • Код в Visual Studio Code
        • Разработка в Visual Studio Code
      • Visual Studio
        • Настройки Visual Studio и проектов
        • Код в Visual Studio
        • Visual Studio + GitHub
      • Qt + Qt Creator
        • Установка Qt и QtCreator
        • Примеры проектов на Qt
      • CLion
        • Настройки CLion
        • Код в CLion
        • CLion + GitHub
    • Компиляторы
      • Clang + Visual Studio
      • Clang + CLion
  • Best practices
    • Антипаттерны и способы улучшения кода
      • 0. Освобождение ресурсов
      • 1. Чтение данных из файла
      • 2. Открытие файлов
      • 3. Объявление переменных
      • 4. Выделение памяти
      • 5. Необдуманный код
      • 6. Глубокие if
      • 7. Длинные if
      • 9. Non-void функции
      • 10. Создание массивов
      • 11. Проверка формата файла
  • Сборка программы
    • Сборка программы
    • Системы сборки / Build systems
      • Проект и решение
      • Make
      • Ninja
      • CMake
      • MSBuild
    • Подключение внешних библиотек
    • Библиотеки
  • Отладка
    • Отладка / Debugging
    • Запуск программы
    • Точки останова / Breakpoints
      • Обычные точки останова / General breakpoint
      • Условные точки останова / Conditional breakpoint
      • Зависимые точки останова / Dependent breakpoint
      • Временные точки останова / Temporary breakpoint
      • Точки трассировки / Breakpoint actions и tracepoints
    • Стек вызовов / Call stack
    • Локальные переменные / Locals
    • Просмотр области памяти / Memory view
    • Исключения / Exceptions
  • Анализ
    • Поиск утечек памяти
    • Санитайзеры
  • Возможности IDE
    • Возможности IDE
    • Продвинутый текстовый редактор
    • Закладки / Bookmarks
    • Платформы / Platforms
    • Конфигурации сборки / Build configurations
    • Шаблонные проекты / Project templates
    • Терминал / Terminal
    • Сборка / Build
    • Запуск программы / Run program
    • Code style
    • Работа с Github Actions
  • Тестирование
    • Тестирование
    • Google test
      • Gtest в VS
      • Gtest в CLion
      • Gtest в VSCode
    • Покрытие кода (code coverage)
Powered by GitBook
On this page
  • Добавление проекта Google Test
  • Добавление директив include
  • Выполнение модульных тестов из консоли
  • Выполнение модульных тестов с помощью обозревателя тестов
  1. Тестирование
  2. Google test

Gtest в VS

PreviousGoogle testNextGtest в CLion

Last updated 3 months ago

Подробная статья по настройке в Visual Studio:

Для создания проектов с автоматической настройкой gtest необходимо поставить через Visual Studio Installer в компоненте рабочей нагрузки "Разработка классических приложений на C++" "Test Adapter for Google Test".

После чего при создании проекта появятся дополнительный шаблон "Google Test".

Добавление проекта Google Test

Проект можно как создать в качестве единственного в решении (Solution), так и включать в уже существующее решение для тестирования разрабатываемого проекта.

При создании проекта Google Test можно выбрать тип библиотеки, которая будет генерироваться этим проектом.

После создания проекта в "Сервис - Параметры - Адаптер тестов для Google Test" можно установить дополнительные опции для запуска и сканирования тестов.

Добавление директив include

В CPP-файле теста необходимо добавить необходимые директивы #include, чтобы типы и функции программы были доступны коду теста. Как правило, программа находится в иерархии папок на один уровень выше. Поэтому если ввести #include "../", то по дальнейшим подсказкам GUI можно без проблем задать относительный путь до ваших заголовочных файлов.

Выполнение модульных тестов из консоли

После настройки проектов в случае, если в функции main() используется ::testing::InitGoogleTest(&argc, argv);, можно запустить программу как обычно (CTRL + F5 или запуск с GUI) и в консоли увидеть результаты тестирования:

Выполнение модульных тестов с помощью обозревателя тестов

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

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

В области сведений о тесте отображаются следующие сведения.

  • Имя исходного файла и номер строки метода теста.

  • Состояние теста.

  • Время, затраченное на выполнение метода теста.

Если тест не пройден, в области сведений также отображается следующее:

  • сообщение, возвращенное платформой модульного тестирования для теста;

  • трассировка стека во время сбоя теста.

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

При запуске, записи и повторном запуске тестов результаты в обозревателе тестов отображаются в стандартных группах Проект, Пространство имен и Класс. Есть возможность изменить способ группировки тестов обозревателем тестов по нажатию ПКМ по заголовку списка тестов.

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

Run all (или CTRL + R, V) пересобирает все проекты в решении, после чего запускает все тесты

Чтобы выполнить все тесты в группе по умолчанию, выберите значок Run selected tests, а затем группу в меню.

Чтобы запустить модульные тесты после каждой локальной сборки, на панели инструментов обозревателя тестов щелкните значок "Параметры" и выберите в меню пункт Выполнить тесты после сборки.

Например, в Additional test execution parameters можно установить фильтры тестов или другие .

С помощью можно запускать модульные тесты из Visual Studio или сторонних проектов модульного тестирования.

параметры для gtest
обозревателя тестов
https://learn.microsoft.com/ru-ru/visualstudio/test/how-to-use-google-test-for-cpp?view=vs-2022