2015-08-25 00:41:02 +02:00
2015-08-30 18:36:37 +02:00
# Google Test #
2015-08-27 03:45:10 +02:00
2019-01-03 17:41:17 +01:00
[![Build Status ](https://api.travis-ci.org/google/googletest.svg?branch=master )](https://travis-ci.org/google/googletest)
2017-08-17 08:42:53 +02:00
[![Build status ](https://ci.appveyor.com/api/projects/status/4o38plt0xbo1ubc8/branch/master?svg=true )](https://ci.appveyor.com/project/GoogleTestAppVeyor/googletest/branch/master)
2015-08-31 15:43:03 +02:00
2018-08-10 16:59:52 +02:00
**Future Plans**:
2018-08-31 17:56:04 +02:00
* 1.8.x Release - [the 1.8.x ](https://github.com/google/googletest/releases/tag/release-1.8.1 ) is the last release that works with pre-C++11 compilers. The 1.8.x will not accept any requests for any new features and any bugfix requests will only be accepted if proven "critical"
2018-08-10 17:29:18 +02:00
* Post 1.8.x - work to improve/cleanup/pay technical debt. When this work is completed there will be a 1.9.x tagged release
2018-08-10 17:06:52 +02:00
* Post 1.9.x googletest will follow [Abseil Live at Head philosophy ](https://abseil.io/about/philosophy )
2018-08-10 16:59:52 +02:00
2015-08-26 01:17:02 +02:00
Welcome to **Google Test** , Google's C++ test framework!
2015-08-25 00:41:02 +02:00
2015-08-27 00:28:20 +02:00
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.
2015-08-25 00:41:02 +02:00
2019-06-10 16:51:41 +02:00
Please subscribe to the mailing list at googletestframework@googlegroups.com for questions, discussions, and development.
There is also an IRC channel on [OFTC ](https://webchat.oftc.net/ ) (irc.oftc.net) #gtest available.
2015-08-27 00:28:20 +02:00
2018-06-11 17:26:16 +02:00
Getting started information for **Google Test** is available in the
[Google Test Primer ](googletest/docs/primer.md ) documentation.
2016-01-06 16:48:58 +01:00
2015-08-30 18:36:37 +02:00
**Google Mock** is an extension to Google Test for writing and using C++ mock
classes. See the separate [Google Mock documentation ](googlemock/README.md ).
2015-08-30 18:38:08 +02:00
More detailed documentation for googletest (including build instructions) are
in its interior [googletest/README.md ](googletest/README.md ) file.
2015-08-30 18:36:37 +02:00
## Features ##
2017-08-29 15:27:54 +02:00
* An [xUnit ](https://en.wikipedia.org/wiki/XUnit ) test framework.
2015-08-30 18:36:37 +02:00
* Test discovery.
* A rich set of assertions.
* User-defined assertions.
* Death tests.
* Fatal and non-fatal failures.
* Value-parameterized tests.
* Type-parameterized tests.
* Various options for running the tests.
* XML test report generation.
2015-08-25 00:41:02 +02:00
2015-08-26 00:23:36 +02:00
## Platforms ##
2015-08-25 00:41:02 +02:00
2015-08-26 00:23:36 +02:00
Google test has been used on a variety of platforms:
2015-08-25 00:41:02 +02:00
2015-08-26 00:23:36 +02:00
* Linux
* Mac OS X
* Windows
* Cygwin
* MinGW
* Windows Mobile
* Symbian
2019-02-01 17:05:31 +01:00
* PlatformIO
2015-08-25 00:41:02 +02:00
2015-08-26 00:23:36 +02:00
## Who Is Using Google Test? ##
2015-08-25 00:41:02 +02:00
2015-08-26 00:23:36 +02:00
In addition to many internal projects at Google, Google Test is also used by
the following notable projects:
2015-08-25 00:41:02 +02:00
2015-08-27 00:28:20 +02:00
* The [Chromium projects ](http://www.chromium.org/ ) (behind the Chrome
browser and Chrome OS).
* The [LLVM ](http://llvm.org/ ) compiler.
2015-11-25 17:25:03 +01:00
* [Protocol Buffers ](https://github.com/google/protobuf ), Google's data
2015-08-27 00:28:20 +02:00
interchange format.
* The [OpenCV ](http://opencv.org/ ) computer vision library.
2017-08-10 18:05:32 +02:00
* [tiny-dnn ](https://github.com/tiny-dnn/tiny-dnn ): header only, dependency-free deep learning framework in C++11.
2015-08-25 00:41:02 +02:00
2015-08-27 00:28:20 +02:00
## Related Open Source Projects ##
2015-08-25 00:41:02 +02:00
2016-03-27 00:45:11 +01:00
[GTest Runner ](https://github.com/nholthaus/gtest-runner ) is a Qt5 based automated test-runner and Graphical User Interface with powerful features for Windows and Linux platforms.
2016-03-27 00:38:55 +01:00
2015-08-27 16:26:17 +02:00
[Google Test UI ](https://github.com/ospector/gtest-gbar ) is test runner that runs
2015-08-26 00:23:36 +02:00
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. Google
Test UI is written in C#.
2015-08-25 00:41:02 +02:00
2015-08-26 00:23:36 +02:00
[GTest TAP Listener ](https://github.com/kinow/gtest-tap-listener ) is an event
listener for Google Test that implements the
2015-11-25 17:25:03 +01:00
[TAP protocol ](https://en.wikipedia.org/wiki/Test_Anything_Protocol ) for test
2015-08-26 00:23:36 +02:00
result output. If your test runner understands TAP, you may find it useful.
2015-08-25 00:41:02 +02:00
2017-07-11 22:23:01 +02:00
[gtest-parallel ](https://github.com/google/gtest-parallel ) is a test runner that
runs tests from your binary in parallel to provide significant speed-up.
2018-08-27 21:27:58 +02:00
[GoogleTest Adapter ](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter ) is a VS Code extension allowing to view Google Tests in a tree view, and run/debug your tests.
2015-08-30 18:36:37 +02:00
## Requirements ##
2015-08-25 00:41:02 +02:00
2019-06-10 16:51:41 +02:00
Google Test is designed to have fairly minimal requirements to build and use
with your projects, but there are some. If you notice any problems on your
platform, please notify
[googletestframework@googlegroups.com ](https://groups.google.com/forum/#!forum/googletestframework ).
Patches for fixing them are welcome!
2015-08-30 18:36:37 +02:00
2019-06-10 16:51:41 +02:00
### Build Requirements
2015-08-25 00:41:02 +02:00
2015-08-30 18:36:37 +02:00
These are the base requirements to build and use Google Test from a source
2019-06-10 16:51:41 +02:00
package:
2015-08-25 00:41:02 +02:00
2019-06-10 16:51:41 +02:00
* [Bazel ](https://bazel.build/ ) or [CMake ](https://cmake.org/ ). NOTE: Bazel is
the build system that googletest is using internally and tests against.
CMake is community-supported.
2015-08-25 23:56:57 +02:00
2019-06-10 16:51:41 +02:00
* a C++11-standard-compliant compiler
2015-08-25 23:56:57 +02:00
2017-12-12 01:33:27 +01:00
## Contributing change
2015-08-25 23:56:57 +02:00
2017-12-12 01:33:27 +01:00
Please read the [`CONTRIBUTING.md` ](CONTRIBUTING.md ) for details on
how to contribute to this project.
2015-08-25 23:56:57 +02:00
2015-08-27 00:28:20 +02:00
Happy testing!