Юнит-тестирование

CLion позволяет легко выполнять юнит-тестирование благодаря интеграции с фреймворками Google Test, Catch, Boost.Test и Doctest.

Запуск тестов

Запустить тест в CLion можно просто с помощью запуска обычного исполняемого файла. Однако, чтобы увидеть результаты в специальном встроенном окне, используйте конфигурацию Google Test, Boost.Test, Catch или Doctest.

Запуск тестов

Если таргет CMake связан с gtest или gmock, конфигурация создается автоматически. Вы можете запустить один тест, тестовый класс (fixture) или целый файл, нажав ⌃⇧R. Кроме того, создавать и обновлять такие конфигурации можно вручную в настройках Run | Edit Configurations...:

Запуск тестов

Чтобы быстрее настроить набор тестов, которые надо запускать в рамках конфигурации Catch, используйте автодополнение для тегов, которые используются в тестах:

Конфигурация Catch

Инструмент запуска тестов

Просмотр результатов

Поддерживая методику разработки через тестирование, CLion предоставляет удобный инструмент запуска тестов. В специальном окне вы увидите:

  • индикатор выполнения, показывающий процент выполненных тестов,
  • иерархический список всех запущенных тестов, включающий информацию о статусе теста и его продолжительности,
  • вывод всех результатов тестов и не только.

Кроме того, он позволяет:

  • перезапускать отдельный тест, все тесты или только те, которые не прошли;
  • экспортировать результаты тестов и смотреть предыдущие запуски тестов по истории, которая сохраняется автоматически;
  • переходить к исходному коду из конкретного теста по нажатию Ctrl+↓.
Значки запуска/статуса теста

Значки запуска/статуса теста

Значки в левом поле редактора служат для быстрого запуска/отладки тестов и позволяют запускать их с Valgrind Memcheck, а также сообщают о статусе теста — пройден он или нет.

Генерация кода

Функция генерации кода может быть очень полезна при написании модульных тестов (работает для Google Test). По нажатию Alt+Insert CLion предлагает сгенерировать тест, тестовый класс (fixture) или пару методов SetUp/TearDown.

Генерация кода в тестах

При генерации тестового метода макрос TEST() автоматически заменяется на более подходящий: TEST_F(), TEST_P(), TYPED_TEST() или TYPED_TEST_P().

Генерация кода в тестах
Поддержка CTest

Поддержка CTest

CLion поддерживает CTest — инструмент запуска тестов, идущий в комплекте с проектной моделью CMake. IDE обнаруживает список тестов, запускаемых с помощью CTest, и автоматически создает для них конфигурации запуска/отладки. Результаты тестов отображаются в специальном окне, из которого можно начать отладку, отдельно перезапустить неудачные тесты и т. д.