README.md 4.32 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.13.0
Gennadiy Civil's avatar
Gennadiy Civil committed
19

Derek Mauro's avatar
Derek Mauro committed
20
21
[Release 1.13.0](https://github.com/google/googletest/releases/tag/v1.13.0) is
now available.
22

Derek Mauro's avatar
Derek Mauro committed
23
The 1.13.x branch requires at least C++14.
Derek Mauro's avatar
Derek Mauro committed
24

25
26
27
28
29
30
31
#### Continuous Integration

We use Google's internal systems for continuous integration. \
GitHub Actions were added for the convenience of open source contributors. They
are exclusively maintained by the open source community and not used by the
GoogleTest team.

misterg's avatar
misterg committed
32
#### Coming Soon
33

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

38
## Welcome to **GoogleTest**, Google's C++ test framework!
Gennadiy Civil's avatar
Gennadiy Civil committed
39
40
41
42
43

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

Abseil Team's avatar
Abseil Team committed
46
47
48
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
49

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

Gennadiy Civil's avatar
Gennadiy Civil committed
53
## Features
Billy Donahue's avatar
Billy Donahue committed
54

Gennadiy Civil's avatar
Gennadiy Civil committed
55
56
57
58
59
60
61
62
63
64
*   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.
65

Abseil Team's avatar
Abseil Team committed
66
## Supported Platforms
67

68
69
70
71
72
73
GoogleTest follows Google's
[Foundational C++ Support Policy](https://opensource.google/documentation/policies/cplusplus-support).
See
[this table](https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md)
for a list of currently supported versions compilers, platforms, and build
tools.
74

75
## Who Is Using GoogleTest?
76

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

Gennadiy Civil's avatar
Gennadiy Civil committed
80
81
82
83
*   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
84
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
85
*   The [OpenCV](http://opencv.org/) computer vision library.
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

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

Billy Donahue's avatar
Billy Donahue committed
98
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
99
listener for GoogleTest 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
[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter)
MR-A's avatar
MR-A committed
107
is a VS Code extension allowing to view GoogleTest in a tree view and run/debug
108
your tests.
David Schuldenfrei's avatar
David Schuldenfrei committed
109

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

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

Abseil Team's avatar
Abseil Team committed
117
## Contributing Changes
118

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

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