1 2# Google Test # 3 4[![Build Status](https://travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest) 5[![Build status](https://ci.appveyor.com/api/projects/status/4o38plt0xbo1ubc8/branch/master?svg=true)](https://ci.appveyor.com/project/GoogleTestAppVeyor/googletest/branch/master) 6 7**Future Plans**: 8* 1.8.x Release - the 1.8.x will be 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" 9* 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 10* Post 1.9.x googletest will follow [Abseil Live at Head philosophy](https://abseil.io/about/philosophy) 11 12 13Welcome to **Google Test**, Google's C++ test framework! 14 15This repository is a merger of the formerly separate GoogleTest and 16GoogleMock projects. These were so closely related that it makes sense to 17maintain and release them together. 18 19Please see the project page above for more information as well as the 20mailing list for questions, discussions, and development. There is 21also an IRC channel on [OFTC](https://webchat.oftc.net/) (irc.oftc.net) #gtest available. Please 22join us! 23 24Getting started information for **Google Test** is available in the 25[Google Test Primer](googletest/docs/primer.md) documentation. 26 27**Google Mock** is an extension to Google Test for writing and using C++ mock 28classes. See the separate [Google Mock documentation](googlemock/README.md). 29 30More detailed documentation for googletest (including build instructions) are 31in its interior [googletest/README.md](googletest/README.md) file. 32 33## Features ## 34 35 * An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework. 36 * Test discovery. 37 * A rich set of assertions. 38 * User-defined assertions. 39 * Death tests. 40 * Fatal and non-fatal failures. 41 * Value-parameterized tests. 42 * Type-parameterized tests. 43 * Various options for running the tests. 44 * XML test report generation. 45 46## Platforms ## 47 48Google test has been used on a variety of platforms: 49 50 * Linux 51 * Mac OS X 52 * Windows 53 * Cygwin 54 * MinGW 55 * Windows Mobile 56 * Symbian 57 58## Who Is Using Google Test? ## 59 60In addition to many internal projects at Google, Google Test is also used by 61the following notable projects: 62 63 * The [Chromium projects](http://www.chromium.org/) (behind the Chrome 64 browser and Chrome OS). 65 * The [LLVM](http://llvm.org/) compiler. 66 * [Protocol Buffers](https://github.com/google/protobuf), Google's data 67 interchange format. 68 * The [OpenCV](http://opencv.org/) computer vision library. 69 * [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn): header only, dependency-free deep learning framework in C++11. 70 71## Related Open Source Projects ## 72 73[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. 74 75[Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that runs 76your test binary, allows you to track its progress via a progress bar, and 77displays a list of test failures. Clicking on one shows failure text. Google 78Test UI is written in C#. 79 80[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event 81listener for Google Test that implements the 82[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test 83result output. If your test runner understands TAP, you may find it useful. 84 85[gtest-parallel](https://github.com/google/gtest-parallel) is a test runner that 86runs tests from your binary in parallel to provide significant speed-up. 87 88[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. 89 90## Requirements ## 91 92Google Test is designed to have fairly minimal requirements to build 93and use with your projects, but there are some. Currently, we support 94Linux, Windows, Mac OS X, and Cygwin. We will also make our best 95effort to support other platforms (e.g. Solaris, AIX, and z/OS). 96However, since core members of the Google Test project have no access 97to these platforms, Google Test may have outstanding issues there. If 98you notice any problems on your platform, please notify 99[googletestframework@googlegroups.com](https://groups.google.com/forum/#!forum/googletestframework). Patches for fixing them are 100even more welcome! 101 102### Linux Requirements ### 103 104These are the base requirements to build and use Google Test from a source 105package (as described below): 106 107 * GNU-compatible Make or gmake 108 * POSIX-standard shell 109 * POSIX(-2) Regular Expressions (regex.h) 110 * A C++98-standard-compliant compiler 111 112### Windows Requirements ### 113 114 * Microsoft Visual C++ 2015 or newer 115 116### Cygwin Requirements ### 117 118 * Cygwin v1.5.25-14 or newer 119 120### Mac OS X Requirements ### 121 122 * Mac OS X v10.4 Tiger or newer 123 * Xcode Developer Tools 124 125## Contributing change 126 127Please read the [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on 128how to contribute to this project. 129 130Happy testing! 131