Фреймворк для модульного тестирования C++ с простыми проверками, макросами в стиле BDD и базовыми микробенчмарками.
google/googletest
GoogleTest — фреймворк Google для тестирования и мокирования C++ с тестами в стиле xUnit, расширенными проверками и GoogleMock.
- Звёзды
- 39,713
- Форки
- 10,935
- Открытые issues
- 552
- Последний коммит
- вчера
Что это?
GoogleTest — фреймворк Google для модульного тестирования на C++, построенный на архитектуре xUnit. Он позволяет разработчикам писать тестовые случаи, объединять их в наборы и запускать с автоматическим обнаружением, поэтому регистрировать тесты вручную не нужно. В репозитории также объединён ранее отдельный проект GoogleMock, предоставляющий средства для создания мок-объектов и изоляции тестируемого кода.
Фреймворк предлагает широкий набор проверок равенства, неравенства, исключений и других условий, а также поддержку пользовательских проверок. В него входят death tests, проверяющие, что код завершается определённым образом, обработка фатальных и нефинальных ошибок, а также тесты с параметрами-значениями и параметрами-типами. Запускать можно отдельные тесты, выполнять их в заданном порядке или параллельно.
GoogleTest следует политике Google Foundational C++ Support Policy в отношении компиляторов и платформ; для ветки 1.18.x требуется как минимум C++17. Его используют такие проекты, как Chromium, LLVM, Protocol Buffers и OpenCV, а результаты его работы также используют сторонние средства запуска тестов и адаптеры для IDE.
Ключевые возможности
- 01Автоматическое обнаружение тестов — регистрировать их вручную не нужно.
- 02Широкая библиотека проверок, включая проверки равенства, исключений и пользовательские проверки.
- 03Death tests проверяют, как завершается код, что полезно при тестировании обработки ошибок.
- 04Тесты с параметрами-значениями и параметрами-типами.
- 05Обработка фатальных и нефинальных ошибок, а также возможность запускать тесты по отдельности, в заданном порядке или параллельно.
- 06Включает GoogleMock для создания мок-объектов.
Сценарии использования
- Написание модульных тестов для библиотеки или приложения на C++.
- Изоляция тестируемого кода с помощью мокирования зависимостей через GoogleMock.
- Тестирование обработки ошибок с помощью death tests.
- Параллельный запуск больших наборов тестов C++ в CI.
Что важно знать
- Для ветки 1.18.x требуется как минимум C++17.
- В будущем планируется зависимость от Abseil.
В подборках
Темы
Частые вопросы
- Что такое googletest?
- GoogleTest — фреймворк Google для тестирования и мокирования C++ с тестами в стиле xUnit, расширенными проверками и GoogleMock. GoogleTest — фреймворк Google для модульного тестирования на C++, построенный на архитектуре xUnit. Он позволяет разработчикам писать тестовые случаи, объединять их в наборы и запускать с автоматическим обнаружением, поэтому регистрировать тесты вручную не нужно. В репозитории также объединён ранее отдельный проект GoogleMock, предоставляющий средства для создания мок-объектов и изоляции тестируемого кода.
- googletest можно использовать бесплатно? Какая у него лицензия?
- googletest распространяется с открытым исходным кодом под лицензией BSD-3-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- googletest всё ещё поддерживается?
- Активно поддерживается. Последний коммит в googletest — 6 нояб. 2026 г..
- Для чего можно использовать googletest?
- Написание модульных тестов для библиотеки или приложения на C++. Изоляция тестируемого кода с помощью мокирования зависимостей через GoogleMock. Тестирование обработки ошибок с помощью death tests. Параллельный запуск больших наборов тестов C++ в CI.
- Где скачать googletest?
- Исходный код и инструкции по установке — на GitHub: https://github.com/google/googletest
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
PHPUnit — ориентированный на разработчиков фреймворк для модульного тестирования PHP-кода, построенный на архитектуре xUnit.
Фреймворк для тестирования Python: помогает писать небольшие тесты и подходит для сложного функционального тестирования приложений и библиотек.
Jest — фреймворк для тестирования JavaScript со встроенными проверками, моками, snapshot-тестированием и интерактивным watch mode.
Набор инструментов для тестирования Go: assertions, моки и структура suite, совместимая со стандартным запускателем go test.
Популярный фреймворк для тестирования JavaScript в Node.js и браузере с поддержкой структуры describe/it и асинхронных тестов.