Найти тему

Инструмент тестирования Google Test. Работа с фреймворком и с системами сборки

Недавно познакомилась с тестировщиком из Индии, который тестирует веб-приложения. Спросила, какими инструментами пользуется. Оказалось, что для большинства задач ему достаточно инструмента Google Test. Давайте и мы познакомимся с этим инструментом.

Изображение создано нейросетью PlaygroundAI
Изображение создано нейросетью PlaygroundAI

Для работы Google Test необходим компилятор, совместимый с С++ 14-й версии и выше, например, gcc 5.0, операционная система Linux, MacOS или Windows, и система сборки Базель или CMake. Система сборки используется для компиляции исходного кода теста. Она также позволяет тестировать модуль приложения на языке высокого уровня. Система сборки Базель относится к приложениям с открытым исходным кодом, таким как Make, Maven и Gradle. В вакансиях по автоматическому тестированию иногда упоминаются эти инструменты.

Базель можно настроить на поэтапную и параллельную работу. Он отправляет в кэш всю ранее выполненную работу и сравнивает ее с обрабатываемыми файлами и командами сборки, в результате чего перестраивает только эти компоненты, в которых есть изменения. Поэтому он работает быстро и не выполняет лишнюю работу. Он может создавать двоичные файлы и развертываемые пакеты данных для различных платформ, таких как Linux, MacOS и Windows. Базель может работать с несколькими репозиториями и десятками тысяч пользователей, обрабатывая одновременно сотни тысяч файлов.

Цель тестов, созданных с помощью системы сборки Базель, подтвердить свойства файлов, хранящихся в репозитории, проверить их целостность и валидность. Следовательно, инструмент работает только с облаком Google. Весь программный код, тесты, сборки и пакеты данных также хранятся в репозитории.

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

Команда GoogleTest использует в своей работе систему сборки Bazel. Когда система настроена, можно написать код теста на языке С++. GoogleTest проверяет правильность написания теста, в соответствии с правилами синтаксиса. Затем производится сборка и запуск теста.

В фреймворке Google Test ключевым является утверждение assert, результат выполнения которого может принимать следующие значения:

  • успех success;
  • некритический отказ nonfatal failure;
  • критический отказ fatal failure.

В случае критического отказа выполнение теста завершается, в остальных случаях тест продолжает выполняться.

Вот и все, для первого знакомства. По сути, этот инструмент не отличается от других, выполняемых на других языках программирования, таких как Java. В тестах, написанных на этом языке, мы так же вызываем функцию assert и проверяем возвращаемое ей значение. С остальными фреймворками познакомимся в будущих публикациях.

Надеюсь, что материал был полезен. Подписывайтесь, чтобы расширить свои познания в области инструментов для тестирования.