README.md 4.5 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).
assafpr's avatar
assafpr committed
9
We recommend using the latest commit in the `main` branch in your projects.
Abseil Team's avatar
Abseil Team committed
10
11
12
13
14
15
16

#### 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.

Hyuk Myeong's avatar
Hyuk Myeong committed
17
#### Release 1.11.0
Gennadiy Civil's avatar
Gennadiy Civil committed
18

Hyuk Myeong's avatar
Hyuk Myeong committed
19
[Release 1.11.0](https://github.com/google/googletest/releases/tag/release-1.11.0)
misterg's avatar
misterg committed
20
is now available.
21

misterg's avatar
misterg committed
22
#### Coming Soon
23

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

28
## Welcome to **GoogleTest**, Google's C++ test framework!
Gennadiy Civil's avatar
Gennadiy Civil committed
29
30
31
32
33

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
34
### Getting Started
Gennadiy Civil's avatar
Gennadiy Civil committed
35

Abseil Team's avatar
Abseil Team committed
36
37
38
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
39

Abseil Team's avatar
Abseil Team committed
40
41
More information about building GoogleTest can be found at
[googletest/README.md](googletest/README.md).
Billy Donahue's avatar
Billy Donahue committed
42

Gennadiy Civil's avatar
Gennadiy Civil committed
43
## Features
Billy Donahue's avatar
Billy Donahue committed
44

Gennadiy Civil's avatar
Gennadiy Civil committed
45
46
47
48
49
50
51
52
53
54
*   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.
55

Abseil Team's avatar
Abseil Team committed
56
## Supported Platforms
57

Abseil Team's avatar
Abseil Team committed
58
59
60
61
62
63
64
65
66
67
68
69
70
GoogleTest requires a codebase and compiler compliant with the C++11 standard or
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
71

Gennadiy Civil's avatar
Gennadiy Civil committed
72
*   Linux
Abseil Team's avatar
Abseil Team committed
73
*   macOS
Gennadiy Civil's avatar
Gennadiy Civil committed
74
*   Windows
Abseil Team's avatar
Abseil Team committed
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

### 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.
91

92
## Who Is Using GoogleTest?
93

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

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

Gennadiy Civil's avatar
Gennadiy Civil committed
104
## Related Open Source Projects
105

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

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

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

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

127
[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS
128
Code extension allowing to view GoogleTest in a tree view, and run/debug your
129
tests.
David Schuldenfrei's avatar
David Schuldenfrei committed
130

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

Abseil Team's avatar
Abseil Team committed
134
## Contributing Changes
135

Abseil Team's avatar
Abseil Team committed
136
137
138
Please read
[`CONTRIBUTING.md`](https://github.com/google/googletest/blob/master/CONTRIBUTING.md)
for details on how to contribute to this project.
139

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