Gtest в VSCode

В Visual Studio Code есть набор расширений для работы с Google Test:

Далее представлен пример использования расширений.


Общая структура программы

project
├── build [CMake generated dir]
├── include [dir]
    ├── quat.hpp [header file]
├── src [dir]
    ├── main.cpp [source file]
├── test [dir]
    ├── tests.cpp [source file with unit tests]
├── CMakeLists.txt [file]
CMakeLists.txt
cmake_minimum_required(VERSION 3.22)

set(CMAKE_CXX_STANDARD 23)

project(gtest_program)

include_directories(include)
add_executable(program src/main.cpp)

enable_testing()
find_package(GTest CONFIG REQUIRED)

add_executable(gtest_program test/tests.cpp)
target_link_libraries(gtest_program PRIVATE GTest::gtest GTest::gtest_main)

add_test(NAME all_tests COMMAND gtest_program)

find_package находит и загружает настройки из внешнего проекта. В этом случае библиотека должна предоставить package configuration file. Путь с package configuration file должен быть указан в CMAKE_PREFIX_PATH при сборке проекта. Если find_package пакет был найден, то в окружении CMake создаются различные переменные, которые предоставляют информацию о найденном пакете. Переменные окружения описывают где находятся экспортируемые заголовочные файлы и исходные файлы пакетов, от каких библиотек зависит пакет, и где эти библиотеки находятся. Имена всегда имеют вид <имя пакета>_<свойство>:

gtest можно установить при помощи vcpkg (подробнее):

В классическом режиме vcpkg устанавливает пути поиска CMake соответствующим образом, чтобы сделать установленные пакеты доступными через find_package(), find_library() и find_path().

Сборка с CMake:

$($env:VCPKG_ROOT) – переменная окружения с путём до vcpkg. Подробнее: vcpkg in CMake projects

Добавляет тесты, которые будут запускаться после успешной сборки при вызове утилиты ctest.

При запуске собранного с тестами исполняемого файла (в примере выше – gtest_program) в поток вывода будут записаны логи тестирования:

Google Test Explorer for Visual Studio Code

В CMakeLists.txt напротив add_tests появится опция запуска/перезапуска тестов. Также в разделе Testing будут отображаться все найденные тесты:

GoogleTest Adapter

Для использования данного расширения необходимо настроить launch.json с Debug-конфигурацией, например:

После чего по опции в Status bar (левая нижняя стрелка)

можно запустить исполняемый файл с тестами.

В Google Tests обозревателе будут отображаться найденные тесты по их группам:

Last updated