144348Simp# GoogleTest 277298Sobrien 377298Sobrien### Announcements 444348Simp 544348Simp#### Live at Head 644348Simp 744348SimpGoogleTest now follows the 844348Simp[Abseil Live at Head philosophy](https://abseil.io/about/philosophy#upgrade-support). 944348SimpWe recommend 1044348Simp[updating to the latest commit in the `main` branch as often as possible](https://github.com/abseil/abseil-cpp/blob/master/FAQ.md#what-is-live-at-head-and-how-do-i-do-it). 1144348SimpWe do publish occasional semantic versions, tagged with 1244348Simp`v${major}.${minor}.${patch}` (e.g. `v1.13.0`). 1344348Simp 1444348Simp#### Documentation Updates 1544348Simp 1644348SimpOur documentation is now live on GitHub Pages at 1744348Simphttps://google.github.io/googletest/. We recommend browsing the documentation on 1844348SimpGitHub Pages rather than directly in the repository. 1944348Simp 2044348Simp#### Release 1.13.0 2144348Simp 2244348Simp[Release 1.13.0](https://github.com/google/googletest/releases/tag/v1.13.0) is 2344348Simpnow available. 2444348Simp 2544348SimpThe 1.13.x branch requires at least C++14. 2644348Simp 2744348Simp#### Continuous Integration 2844348Simp 2944348SimpWe use Google's internal systems for continuous integration. \ 3044348SimpGitHub Actions were added for the convenience of open-source contributors. They 3160484Sobrienare exclusively maintained by the open-source community and not used by the 3260484SobrienGoogleTest team. 3360484Sobrien 3460484Sobrien#### Coming Soon 3560484Sobrien 3660484Sobrien* We are planning to take a dependency on 3760484Sobrien [Abseil](https://github.com/abseil/abseil-cpp). 3860484Sobrien* More documentation improvements are planned. 3960484Sobrien 4060484Sobrien## Welcome to **GoogleTest**, Google's C++ test framework! 4160484Sobrien 4260484SobrienThis repository is a merger of the formerly separate GoogleTest and GoogleMock 4360484Sobrienprojects. These were so closely related that it makes sense to maintain and 4460484Sobrienrelease them together. 4560484Sobrien 4660484Sobrien### Getting Started 4760484Sobrien 4860484SobrienSee the [GoogleTest User's Guide](https://google.github.io/googletest/) for 4960484Sobriendocumentation. We recommend starting with the 5060484Sobrien[GoogleTest Primer](https://google.github.io/googletest/primer.html). 5160484Sobrien 5260484SobrienMore information about building GoogleTest can be found at 5360484Sobrien[googletest/README.md](googletest/README.md). 5460484Sobrien 5560484Sobrien## Features 5660484Sobrien 5760484Sobrien* xUnit test framework: \ 5860484Sobrien Googletest is based on the [xUnit](https://en.wikipedia.org/wiki/XUnit) 5960484Sobrien testing framework, a popular architecture for unit testing 6060484Sobrien* Test discovery: \ 6160484Sobrien Googletest automatically discovers and runs your tests, eliminating the need 6260484Sobrien to manually register your tests 6360484Sobrien* Rich set of assertions: \ 6460484Sobrien Googletest provides a variety of assertions, such as equality, inequality, 6560484Sobrien exceptions, and more, making it easy to test your code 6660484Sobrien* User-defined assertions: \ 6760484Sobrien You can define your own assertions with Googletest, making it simple to 6860484Sobrien write tests that are specific to your code 6960484Sobrien* Death tests: \ 7060484Sobrien Googletest supports death tests, which verify that your code exits in a 7160484Sobrien certain way, making it useful for testing error-handling code 7260484Sobrien* Fatal and non-fatal failures: \ 7360484Sobrien You can specify whether a test failure should be treated as fatal or 7460484Sobrien non-fatal with Googletest, allowing tests to continue running even if a 7560484Sobrien failure occurs 7660484Sobrien* Value-parameterized tests: \ 7760484Sobrien Googletest supports value-parameterized tests, which run multiple times with 7860484Sobrien different input values, making it useful for testing functions that take 7960484Sobrien different inputs 8060484Sobrien* Type-parameterized tests: \ 8160484Sobrien Googletest also supports type-parameterized tests, which run with different 8260484Sobrien data types, making it useful for testing functions that work with different 8360484Sobrien data types 8460484Sobrien* Various options for running tests: \ 8560484Sobrien Googletest provides many options for running tests including running 8660484Sobrien individual tests, running tests in a specific order and running tests in 8760484Sobrien parallel 8877298Sobrien 8960484Sobrien## Supported Platforms 9044348Simp 9144348SimpGoogleTest follows Google's 9244348Simp[Foundational C++ Support Policy](https://opensource.google/documentation/policies/cplusplus-support). 9344348SimpSee 9444348Simp[this table](https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md) 9544348Simpfor a list of currently supported versions of compilers, platforms, and build 9644348Simptools. 9744348Simp 9844348Simp## Who Is Using GoogleTest? 9944348Simp 10044348SimpIn addition to many internal projects at Google, GoogleTest is also used by the 10144348Simpfollowing notable projects: 10244348Simp 10344348Simp* The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser 10444348Simp and Chrome OS). 10560484Sobrien* The [LLVM](http://llvm.org/) compiler. 10660484Sobrien* [Protocol Buffers](https://github.com/google/protobuf), Google's data 10760484Sobrien interchange format. 10860484Sobrien* The [OpenCV](http://opencv.org/) computer vision library. 10944348Simp 11044348Simp## Related Open Source Projects 11144348Simp 11244348Simp[GTest Runner](https://github.com/nholthaus/gtest-runner) is a Qt5 based 11344348Simpautomated test-runner and Graphical User Interface with powerful features for 11444348SimpWindows and Linux platforms. 11544348Simp 11644348Simp[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that 11744348Simpruns your test binary, allows you to track its progress via a progress bar, and 11844348Simpdisplays a list of test failures. Clicking on one shows failure text. GoogleTest 11944348SimpUI is written in C#. 12044348Simp 12144348Simp[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event 12244348Simplistener for GoogleTest that implements the 12360484Sobrien[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test 12477298Sobrienresult output. If your test runner understands TAP, you may find it useful. 12577298Sobrien 12677298Sobrien[gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that 12777298Sobrienruns tests from your binary in parallel to provide significant speed-up. 12877298Sobrien 12977298Sobrien[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter) 13077298Sobrienis a VS Code extension allowing to view GoogleTest in a tree view and run/debug 13177298Sobrienyour tests. 13277298Sobrien 13360484Sobrien[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS 13460484SobrienCode extension allowing to view GoogleTest in a tree view and run/debug your 13560484Sobrientests. 13660484Sobrien 13760484Sobrien[Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser 13860484Sobrienthat generates stub code for GoogleTest. 13960484Sobrien 14060484Sobrien## Contributing Changes 14160484Sobrien 14260484SobrienPlease read 14360484Sobrien[`CONTRIBUTING.md`](https://github.com/google/googletest/blob/main/CONTRIBUTING.md) 14460484Sobrienfor details on how to contribute to this project. 14560484Sobrien 14660484SobrienHappy testing! 14760484Sobrien