2015-08-24 22:41:02 +00:00
2015-08-30 16:36:37 +00:00
# Google Test #
2015-08-27 01:45:10 +00:00
2019-01-03 16:41:17 +00:00
[![Build Status ](https://api.travis-ci.org/google/googletest.svg?branch=master )](https://travis-ci.org/google/googletest)
2017-08-17 06:42:53 +00: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 13:43:03 +00:00
2018-08-10 14:59:52 +00:00
**Future Plans**:
2018-08-31 15:56:04 +00: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 15:29:18 +00: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 15:06:52 +00:00
* Post 1.9.x googletest will follow [Abseil Live at Head philosophy ](https://abseil.io/about/philosophy )
2018-08-10 14:59:52 +00:00
2015-08-25 23:17:02 +00:00
Welcome to **Google Test** , Google's C++ test framework!
2015-08-24 22:41:02 +00:00
2015-08-26 22:28:20 +00: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-24 22:41:02 +00:00
2019-06-10 14:51:41 +00: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-26 22:28:20 +00:00
2018-06-11 15:26:16 +00:00
Getting started information for **Google Test** is available in the
[Google Test Primer ](googletest/docs/primer.md ) documentation.
2016-01-06 15:48:58 +00:00
2015-08-30 16:36:37 +00: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 16:38:08 +00:00
More detailed documentation for googletest (including build instructions) are
in its interior [googletest/README.md ](googletest/README.md ) file.
2015-08-30 16:36:37 +00:00
## Features ##
2017-08-29 13:27:54 +00:00
* An [xUnit ](https://en.wikipedia.org/wiki/XUnit ) test framework.
2015-08-30 16:36:37 +00: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-24 22:41:02 +00:00
2015-08-25 22:23:36 +00:00
## Platforms ##
2015-08-24 22:41:02 +00:00
2015-08-25 22:23:36 +00:00
Google test has been used on a variety of platforms:
2015-08-24 22:41:02 +00:00
2015-08-25 22:23:36 +00:00
* Linux
* Mac OS X
* Windows
* Cygwin
* MinGW
* Windows Mobile
* Symbian
2019-02-01 16:05:31 +00:00
* PlatformIO
2015-08-24 22:41:02 +00:00
2015-08-25 22:23:36 +00:00
## Who Is Using Google Test? ##
2015-08-24 22:41:02 +00:00
2015-08-25 22:23:36 +00:00
In addition to many internal projects at Google, Google Test is also used by
the following notable projects:
2015-08-24 22:41:02 +00:00
2015-08-26 22:28:20 +00:00
* The [Chromium projects ](http://www.chromium.org/ ) (behind the Chrome
browser and Chrome OS).
* The [LLVM ](http://llvm.org/ ) compiler.
2015-11-25 16:25:03 +00:00
* [Protocol Buffers ](https://github.com/google/protobuf ), Google's data
2015-08-26 22:28:20 +00:00
interchange format.
* The [OpenCV ](http://opencv.org/ ) computer vision library.
2017-08-10 16:05:32 +00:00
* [tiny-dnn ](https://github.com/tiny-dnn/tiny-dnn ): header only, dependency-free deep learning framework in C++11.
2015-08-24 22:41:02 +00:00
2015-08-26 22:28:20 +00:00
## Related Open Source Projects ##
2015-08-24 22:41:02 +00:00
2016-03-26 23:45:11 +00: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-26 23:38:55 +00:00
2015-08-27 14:26:17 +00:00
[Google Test UI ](https://github.com/ospector/gtest-gbar ) is test runner that runs
2015-08-25 22:23:36 +00: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-24 22:41:02 +00:00
2015-08-25 22:23:36 +00:00
[GTest TAP Listener ](https://github.com/kinow/gtest-tap-listener ) is an event
listener for Google Test that implements the
2015-11-25 16:25:03 +00:00
[TAP protocol ](https://en.wikipedia.org/wiki/Test_Anything_Protocol ) for test
2015-08-25 22:23:36 +00:00
result output. If your test runner understands TAP, you may find it useful.
2015-08-24 22:41:02 +00:00
2017-07-11 20:23:01 +00: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 19:27:58 +00: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 16:36:37 +00:00
## Requirements ##
2015-08-24 22:41:02 +00:00
2019-06-10 14:51:41 +00: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 16:36:37 +00:00
2019-06-10 14:51:41 +00:00
### Build Requirements
2015-08-24 22:41:02 +00:00
2015-08-30 16:36:37 +00:00
These are the base requirements to build and use Google Test from a source
2019-06-10 14:51:41 +00:00
package:
2015-08-24 22:41:02 +00:00
2019-06-10 14:51:41 +00: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 21:56:57 +00:00
2019-06-10 14:51:41 +00:00
* a C++11-standard-compliant compiler
2015-08-25 21:56:57 +00:00
2017-12-12 00:33:27 +00:00
## Contributing change
2015-08-25 21:56:57 +00:00
2017-12-12 00:33:27 +00:00
Please read the [`CONTRIBUTING.md` ](CONTRIBUTING.md ) for details on
how to contribute to this project.
2015-08-25 21:56:57 +00:00
2015-08-26 22:28:20 +00:00
Happy testing!