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

## Welcome to **Google Test**, Google's C++ test framework!

24
This repository is a merger of the formerly separate Google Test and Google Mock
Gennadiy Civil's avatar
Gennadiy Civil committed
25
26
27
28
29
30
projects. These were so closely related that it makes sense to maintain and
release them together.

### Getting started:

The information for **Google Test** is available in the
31
[Google Test Primer](googletest/docs/primer.md) documentation.
32

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

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

Gennadiy Civil's avatar
Gennadiy Civil committed
39
## Features
Billy Donahue's avatar
Billy Donahue committed
40

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

Gennadiy Civil's avatar
Gennadiy Civil committed
52
## Platforms
53

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

Gennadiy Civil's avatar
Gennadiy Civil committed
56
57
58
59
60
61
62
63
*   Linux
*   Mac OS X
*   Windows
*   Cygwin
*   MinGW
*   Windows Mobile
*   Symbian
*   PlatformIO
64

Gennadiy Civil's avatar
Gennadiy Civil committed
65
## Who Is Using Google Test?
66

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

Gennadiy Civil's avatar
Gennadiy Civil committed
70
71
72
73
*   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
74
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
75
*   The [OpenCV](http://opencv.org/) computer vision library.
76

Gennadiy Civil's avatar
Gennadiy Civil committed
77
## Related Open Source Projects
78

Gennadiy Civil's avatar
Gennadiy Civil committed
79
80
81
[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.
82

Gennadiy Civil's avatar
Gennadiy Civil committed
83
84
[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
85
86
displays a list of test failures. Clicking on one shows failure text. Google
Test UI is written in C#.
87

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

93
94
95
[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
96
97
98
[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
99

100
[C++ TestMate](https://github.com/matepek/vscode-catch2-test-adapter) is a VS
101
Code extension allowing to view Google Test in a tree view, and run/debug your
102
tests.
David Schuldenfrei's avatar
David Schuldenfrei committed
103

104
105
106
[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
107
## Requirements
108

109
110
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
dmauro's avatar
dmauro committed
111
112
113
platform, please file an issue on the
[GoogleTest GitHub Issue Tracker](https://github.com/google/googletest/issues).

114
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!