googletest README

The project's README from github.com/google/googletest. As one markdown file: README.md.

GoogleTest

Announcements

Documentation Updates

Our documentation is now live on GitHub Pages at https://google.github.io/googletest/. We recommend browsing the documentation on GitHub Pages rather than directly in the repository.

Release 1.18.0

Release 1.18.0 is now available.

The 1.18.x branch requires at least C++17.

Continuous Integration

We use Google's internal systems for continuous integration.

Coming Soon

Welcome to GoogleTest, Google's C++ test framework!

This repository is a merger of the formerly separate GoogleTest and GoogleMock projects. These were so closely related that it makes sense to maintain and release them together.

Getting Started

See the GoogleTest User's Guide for documentation. We recommend starting with the GoogleTest Primer.

More information about building GoogleTest can be found at googletest/README.md.

Features

Supported Platforms

GoogleTest follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions of compilers, platforms, and build tools.

Who Is Using GoogleTest?

In addition to many internal projects at Google, GoogleTest is also used by the following notable projects:

GTest Runner is a Qt5 based automated test-runner and Graphical User Interface with powerful features for Windows and Linux platforms.

GoogleTest UI is a test runner that runs your test binary, allows you to track its progress via a progress bar, and displays a list of test failures. Clicking on one shows failure text. GoogleTest UI is written in C#.

GTest TAP Listener is an event listener for GoogleTest that implements the TAP protocol for test result output. If your test runner understands TAP, you may find it useful.

gtest-parallel is a test runner that runs tests from your binary in parallel to provide significant speed-up.

GoogleTest Adapter is a VS Code extension allowing to view GoogleTest in a tree view and run/debug your tests.

C++ TestMate is a VS Code extension allowing to view GoogleTest in a tree view and run/debug your tests.

Cornichon is a small Gherkin DSL parser that generates stub code for GoogleTest.

Contributing Changes

Please read CONTRIBUTING.md for details on how to contribute to this project.

Happy testing!

googletest (google/googletest)

Searching Database…

Что это такое?Фреймворк для тестирования и мокирования на C++ от Google, построенный на архитектуре xUnit. Он объединил ранее отдельные проекты GoogleTest и GoogleMock, которые Google теперь разрабатывает и выпускает вместе.
Это инструмент, который я запускаю, или библиотека, которую я подключаю к своему коду?Это фреймворк, который вы подключаете к своему коду на C++, а не отдельный инструмент: тесты пишутся в коде, компилируются в тестовый бинарник, и запуск этого бинарника выполняет весь набор тестов.
С чего начать писать тесты?Прочитайте GoogleTest Primer в User's Guide — команда рекомендует документацию на GitHub Pages, а не копии в самом репозитории. Инструкции по сборке лежат в googletest/README.md; актуальный релиз — 1.18.0.
Мой компилятор достаточно новый?Нужен компилятор с поддержкой C++17: ветка 1.18.x требует как минимум C++17. Больше ничего не требуется — вы просто собираете его из исходников по инструкциям в googletest/README.md.
Скоро ли что-то изменится так, что это повлияет на мою сборку?За этим стоит следить: Google планирует добавить зависимость от Abseil — она помечена как «скоро будет», так что в будущем релизе у фреймворка появится эта зависимость.
Кто использует это в продакшене?Множество внутренних проектов Google, а также проекты Chromium, на которых работают Chrome и Chrome OS, компилятор LLVM, Protocol Buffers и библиотека OpenCV — фреймворк проверен на огромном масштабе.
Будет ли работать на моей платформе?Фреймворк собирается и работает везде, где поддерживаются компиляторы и платформы из Google Foundational C++ Support Policy — таблица в этом документе точно перечисляет поддерживаемые версии компиляторов, платформ и инструментов сборки.
Что умеют проверять его проверки (assertions)?Из коробки — равенство, неравенство, исключения и многое другое, а для проверок, специфичных для вашего кода, можно объявлять собственные assertions. Отказы бывают фатальные и нефатальные: после нефатального отказа тест продолжает работу.
Может ли один тест проверять много входных данных или типов?Да — value-parameterized тесты перезапускаются с разными входными значениями, а type-parameterized тесты — с разными типами данных. Death-тесты проверяют, что код завершается ожидаемым образом, это полезно для веток обработки ошибок.
Можно ли запустить один тест или всё сразу параллельно?И то и другое: у GoogleTest есть опции для запуска отдельных тестов, запуска в заданном порядке и параллельного запуска. Тесты обнаруживаются автоматически, так что вручную вести список регистрации не нужно.
Есть ли интеграции с редакторами или дополнительные инструменты?Для VS Code есть GoogleTest Adapter и C++ TestMate — с ними тесты можно просматривать, запускать и отлаживать в виде дерева. Отдельные раннеры: GTest Runner (GUI на Qt5 для Windows и Linux), GoogleTest UI и gtest-parallel.
What are similar projects?testify, mockito, mockery, ava, Catch2, phpunit, msw, yoga
Creator
google
Size
13.9 MB
Stars
39.7K
Age
11y
Commits · 90 Days