README.md 4.74 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
### Summer Vacation
9
10
11

June 26, 2019 - July 20 2019 due to summer vacations there will be much reduced
activity on Pull Requests and issues from the maintainers.
Gennadiy Civil's avatar
Gennadiy Civil committed
12

Gennadiy Civil's avatar
Gennadiy Civil committed
13
### Future Plans
Gennadiy Civil's avatar
Gennadiy Civil committed
14

Gennadiy Civil's avatar
Gennadiy Civil committed
15
#### 1.8.x Release:
Gennadiy Civil's avatar
Gennadiy Civil committed
16

Gennadiy Civil's avatar
Gennadiy Civil committed
17
18
19
20
[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"
21

Gennadiy Civil's avatar
Gennadiy Civil committed
22
#### Post 1.8.x:
23

Gennadiy Civil's avatar
Gennadiy Civil committed
24
25
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
26

Gennadiy Civil's avatar
Gennadiy Civil committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#### 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
44
[Google Test Primer](googletest/docs/primer.md) documentation.
45

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

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

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

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

Gennadiy Civil's avatar
Gennadiy Civil committed
65
## Platforms
66

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

Gennadiy Civil's avatar
Gennadiy Civil committed
69
70
71
72
73
74
75
76
*   Linux
*   Mac OS X
*   Windows
*   Cygwin
*   MinGW
*   Windows Mobile
*   Symbian
*   PlatformIO
77

Gennadiy Civil's avatar
Gennadiy Civil committed
78
## Who Is Using Google Test?
79

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

Gennadiy Civil's avatar
Gennadiy Civil committed
83
84
85
86
*   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
87
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
88
89
90
*   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.
91

Gennadiy Civil's avatar
Gennadiy Civil committed
92
## Related Open Source Projects
93

Gennadiy Civil's avatar
Gennadiy Civil committed
94
95
96
[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.
97

Gennadiy Civil's avatar
Gennadiy Civil committed
98
99
[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
100
101
displays a list of test failures. Clicking on one shows failure text. Google
Test UI is written in C#.
102

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

108
109
110
[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
111
112
113
[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
114

Gennadiy Civil's avatar
Gennadiy Civil committed
115
## Requirements
116

117
118
119
120
121
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
122

123
### Build Requirements
124

Billy Donahue's avatar
Billy Donahue committed
125
These are the base requirements to build and use Google Test from a source
126
package:
127

128
129
130
*   [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.
131

132
*   a C++11-standard-compliant compiler
133

134
## Contributing change
135

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

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