README.md 4.58 KB
Newer Older
Gennadiy Civil's avatar
Gennadiy Civil committed
1
# Google Test
2

Gennadiy Civil's avatar
Gennadiy Civil committed
3
#### OSS Builds Status:
Billy Donahue's avatar
Billy Donahue committed
4

Gennadiy Civil's avatar
Gennadiy Civil committed
5
[![Build Status](https://api.travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest)
Gennadiy Civil's avatar
Gennadiy Civil committed
6
[![Build status](https://ci.appveyor.com/api/projects/status/4o38plt0xbo1ubc8/branch/master?svg=true)](https://ci.appveyor.com/project/GoogleTestAppVeyor/googletest/branch/master)
Billy Donahue's avatar
Billy Donahue committed
7

Gennadiy Civil's avatar
Gennadiy Civil committed
8
### Future Plans
Gennadiy Civil's avatar
Gennadiy Civil committed
9

Gennadiy Civil's avatar
Gennadiy Civil committed
10
#### 1.8.x Release:
Gennadiy Civil's avatar
Gennadiy Civil committed
11

Gennadiy Civil's avatar
Gennadiy Civil committed
12
13
14
15
[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"
16

Gennadiy Civil's avatar
Gennadiy Civil committed
17
#### Post 1.8.x:
18

Gennadiy Civil's avatar
Gennadiy Civil committed
19
20
On-going work to improve/cleanup/pay technical debt. When this work is completed
there will be a 1.9.x tagged release
Billy Donahue's avatar
Billy Donahue committed
21

Gennadiy Civil's avatar
Gennadiy Civil committed
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#### Post 1.9.x

Post 1.9.x googletest will follow
[Abseil Live at Head philosophy](https://abseil.io/about/philosophy)

## Welcome to **Google Test**, 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.

Please subscribe to the mailing list at googletestframework@googlegroups.com for
questions, discussions, and development.

### Getting started:

The information for **Google Test** is available in the
39
[Google Test Primer](googletest/docs/primer.md) documentation.
40

Billy Donahue's avatar
Billy Donahue committed
41
**Google Mock** is an extension to Google Test for writing and using C++ mock
Gennadiy Civil's avatar
Gennadiy Civil committed
42
classes. See the separate [Google Mock documentation](googlemock/README.md).
Billy Donahue's avatar
Billy Donahue committed
43

Gennadiy Civil's avatar
Gennadiy Civil committed
44
45
More detailed documentation for googletest is in its interior
[googletest/README.md](googletest/README.md) file.
Billy Donahue's avatar
Billy Donahue committed
46

Gennadiy Civil's avatar
Gennadiy Civil committed
47
## Features
Billy Donahue's avatar
Billy Donahue committed
48

Gennadiy Civil's avatar
Gennadiy Civil committed
49
50
51
52
53
54
55
56
57
58
*   An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework.
*   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.
59

Gennadiy Civil's avatar
Gennadiy Civil committed
60
## Platforms
61

Billy Donahue's avatar
Billy Donahue committed
62
Google test has been used on a variety of platforms:
63

Gennadiy Civil's avatar
Gennadiy Civil committed
64
65
66
67
68
69
70
71
*   Linux
*   Mac OS X
*   Windows
*   Cygwin
*   MinGW
*   Windows Mobile
*   Symbian
*   PlatformIO
72

Gennadiy Civil's avatar
Gennadiy Civil committed
73
## Who Is Using Google Test?
74

Gennadiy Civil's avatar
Gennadiy Civil committed
75
76
In addition to many internal projects at Google, Google Test is also used by the
following notable projects:
77

Gennadiy Civil's avatar
Gennadiy Civil committed
78
79
80
81
*   The [Chromium projects](http://www.chromium.org/) (behind the Chrome browser
    and Chrome OS).
*   The [LLVM](http://llvm.org/) compiler.
*   [Protocol Buffers](https://github.com/google/protobuf), Google's data
Billy Donahue's avatar
Billy Donahue committed
82
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
83
84
85
*   The [OpenCV](http://opencv.org/) computer vision library.
*   [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn): header only,
    dependency-free deep learning framework in C++11.
86

Gennadiy Civil's avatar
Gennadiy Civil committed
87
## Related Open Source Projects
88

Gennadiy Civil's avatar
Gennadiy Civil committed
89
90
91
[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.
92

Gennadiy Civil's avatar
Gennadiy Civil committed
93
94
[Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that
runs your test binary, allows you to track its progress via a progress bar, and
Billy Donahue's avatar
Billy Donahue committed
95
96
displays a list of test failures. Clicking on one shows failure text. Google
Test UI is written in C#.
97

Billy Donahue's avatar
Billy Donahue committed
98
99
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
listener for Google Test that implements the
100
[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
Billy Donahue's avatar
Billy Donahue committed
101
result output. If your test runner understands TAP, you may find it useful.
102

103
104
105
[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.

Gennadiy Civil's avatar
Gennadiy Civil committed
106
107
108
[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.
David Schuldenfrei's avatar
David Schuldenfrei committed
109

Gennadiy Civil's avatar
Gennadiy Civil committed
110
## Requirements
111

112
113
114
115
116
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!
Billy Donahue's avatar
Billy Donahue committed
117

118
### Build Requirements
119

Billy Donahue's avatar
Billy Donahue committed
120
These are the base requirements to build and use Google Test from a source
121
package:
122

123
124
125
*   [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.
126

127
*   a C++11-standard-compliant compiler
128

129
## Contributing change
130

Gennadiy Civil's avatar
Gennadiy Civil committed
131
132
Please read the [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on how to
contribute to this project.
133

Billy Donahue's avatar
Billy Donahue committed
134
Happy testing!