README.md 4.52 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

misterg's avatar
misterg committed
8
### Announcements:
Gennadiy Civil's avatar
Gennadiy Civil committed
9

misterg's avatar
misterg committed
10
#### Release 1.10.x
Gennadiy Civil's avatar
Gennadiy Civil committed
11

misterg's avatar
misterg committed
12
13
[Release 1.10.x](https://github.com/google/googletest/releases/tag/release-1.10.0)
is now available.
14

misterg's avatar
misterg committed
15
#### Coming Soon
16

misterg's avatar
misterg committed
17
18
19
20
*   Post 1.10.x googletest will follow
    [Abseil Live at Head philosophy](https://abseil.io/about/philosophy)
*   We are also planning to take a dependency on
    [Abseil](https://github.com/abseil/abseil-cpp).
Gennadiy Civil's avatar
Gennadiy Civil committed
21
22
23
24
25
26
27
28
29
30
31
32
33

## 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
34
[Google Test Primer](googletest/docs/primer.md) documentation.
35

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

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

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

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

Gennadiy Civil's avatar
Gennadiy Civil committed
55
## Platforms
56

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

Gennadiy Civil's avatar
Gennadiy Civil committed
59
60
61
62
63
64
65
66
*   Linux
*   Mac OS X
*   Windows
*   Cygwin
*   MinGW
*   Windows Mobile
*   Symbian
*   PlatformIO
67

Gennadiy Civil's avatar
Gennadiy Civil committed
68
## Who Is Using Google Test?
69

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

Gennadiy Civil's avatar
Gennadiy Civil committed
73
74
75
76
*   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
77
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
78
79
80
*   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.
81

Gennadiy Civil's avatar
Gennadiy Civil committed
82
## Related Open Source Projects
83

Gennadiy Civil's avatar
Gennadiy Civil committed
84
85
86
[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.
87

Gennadiy Civil's avatar
Gennadiy Civil committed
88
89
[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
90
91
displays a list of test failures. Clicking on one shows failure text. Google
Test UI is written in C#.
92

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

98
99
100
[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
101
102
103
[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
104

105
106
107
[Cornichon](https://pypi.org/project/cornichon/) is a small Gherkin DSL parser
that generates stub code for Google Test.

Gennadiy Civil's avatar
Gennadiy Civil committed
108
## Requirements
109

110
111
112
113
114
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
115

116
### Build Requirements
117

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

121
122
123
*   [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.
124

125
*   a C++11-standard-compliant compiler
126

127
## Contributing change
128

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

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