README.md 4.7 KB
Newer Older
1
# GoogleTest
2

Abseil Team's avatar
Abseil Team committed
3
### Announcements
Gennadiy Civil's avatar
Gennadiy Civil committed
4

Abseil Team's avatar
Abseil Team committed
5
6
7
8
#### Live at Head

GoogleTest now follows the
[Abseil Live at Head philosophy](https://abseil.io/about/philosophy#upgrade-support).
9
10
We recommend
[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).
Abseil Team's avatar
Abseil Team committed
11
12
13
14
15
16
17

#### Documentation Updates

Our documentation is now live on GitHub Pages at
https://google.github.io/googletest/. We recommend browsing the documentation on
GitHub Pages rather than directly in the repository.

Derek Mauro's avatar
Derek Mauro committed
18
#### Release 1.12.1
Gennadiy Civil's avatar
Gennadiy Civil committed
19

Derek Mauro's avatar
Derek Mauro committed
20
[Release 1.12.1](https://github.com/google/googletest/releases/tag/release-1.12.1)
misterg's avatar
misterg committed
21
is now available.
22

Derek Mauro's avatar
Derek Mauro committed
23
24
25
The 1.12.x branch will be the last to support C++11. Future releases will
require at least C++14.

misterg's avatar
misterg committed
26
#### Coming Soon
27

Abseil Team's avatar
Abseil Team committed
28
*   We are planning to take a dependency on
misterg's avatar
misterg committed
29
    [Abseil](https://github.com/abseil/abseil-cpp).
Abseil Team's avatar
Abseil Team committed
30
*   More documentation improvements are planned.
Gennadiy Civil's avatar
Gennadiy Civil committed
31

32
## Welcome to **GoogleTest**, Google's C++ test framework!
Gennadiy Civil's avatar
Gennadiy Civil committed
33
34
35
36
37

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.

Abseil Team's avatar
Abseil Team committed
38
### Getting Started
Gennadiy Civil's avatar
Gennadiy Civil committed
39

Abseil Team's avatar
Abseil Team committed
40
41
42
See the [GoogleTest User's Guide](https://google.github.io/googletest/) for
documentation. We recommend starting with the
[GoogleTest Primer](https://google.github.io/googletest/primer.html).
Billy Donahue's avatar
Billy Donahue committed
43

Abseil Team's avatar
Abseil Team committed
44
45
More information about building GoogleTest can be found at
[googletest/README.md](googletest/README.md).
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

Abseil Team's avatar
Abseil Team committed
60
## Supported Platforms
61

Derek Mauro's avatar
Derek Mauro committed
62
GoogleTest requires a codebase and compiler compliant with the C++14 standard or
Abseil Team's avatar
Abseil Team committed
63
64
65
66
67
68
69
70
71
72
73
74
newer.

The GoogleTest code is officially supported on the following platforms.
Operating systems or tools not listed below are community-supported. For
community-supported platforms, patches that do not complicate the code may be
considered.

If you notice any problems on your platform, please file an issue on the
[GoogleTest GitHub Issue Tracker](https://github.com/google/googletest/issues).
Pull requests containing fixes are welcome!

### Operating Systems
75

Gennadiy Civil's avatar
Gennadiy Civil committed
76
*   Linux
Abseil Team's avatar
Abseil Team committed
77
*   macOS
Gennadiy Civil's avatar
Gennadiy Civil committed
78
*   Windows
Abseil Team's avatar
Abseil Team committed
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

### Compilers

*   gcc 5.0+
*   clang 5.0+
*   MSVC 2015+

**macOS users:** Xcode 9.3+ provides clang 5.0+.

### Build Systems

*   [Bazel](https://bazel.build/)
*   [CMake](https://cmake.org/)

**Note:** Bazel is the build system used by the team internally and in tests.
CMake is supported on a best-effort basis and by the community.
95

96
## Who Is Using GoogleTest?
97

98
In addition to many internal projects at Google, GoogleTest is also used by the
Gennadiy Civil's avatar
Gennadiy Civil committed
99
following notable projects:
100

Gennadiy Civil's avatar
Gennadiy Civil committed
101
102
103
104
*   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
105
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
106
*   The [OpenCV](http://opencv.org/) computer vision library.
107

Gennadiy Civil's avatar
Gennadiy Civil committed
108
## Related Open Source Projects
109

Gennadiy Civil's avatar
Gennadiy Civil committed
110
111
112
[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.
113

114
[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that
Gennadiy Civil's avatar
Gennadiy Civil committed
115
runs your test binary, allows you to track its progress via a progress bar, and
Hyuk Myeong's avatar
Hyuk Myeong committed
116
117
displays a list of test failures. Clicking on one shows failure text. GoogleTest
UI is written in C#.
118

Billy Donahue's avatar
Billy Donahue committed
119
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
120
listener for GoogleTest that implements the
121
[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
Billy Donahue's avatar
Billy Donahue committed
122
result output. If your test runner understands TAP, you may find it useful.
123

124
125
126
[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
127
[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter)
MR-A's avatar
MR-A committed
128
is a VS Code extension allowing to view GoogleTest in a tree view and run/debug
129
your tests.
David Schuldenfrei's avatar
David Schuldenfrei committed
130

131
[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS
MR-A's avatar
MR-A committed
132
Code extension allowing to view GoogleTest in a tree view and run/debug your
133
tests.
David Schuldenfrei's avatar
David Schuldenfrei committed
134

135
[Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser
136
that generates stub code for GoogleTest.
137

Abseil Team's avatar
Abseil Team committed
138
## Contributing Changes
139

Abseil Team's avatar
Abseil Team committed
140
Please read
141
[`CONTRIBUTING.md`](https://github.com/google/googletest/blob/main/CONTRIBUTING.md)
Abseil Team's avatar
Abseil Team committed
142
for details on how to contribute to this project.
143

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