README.md 4.42 KB
Newer Older
1
# GoogleTest
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
## Welcome to **GoogleTest**, Google's C++ test framework!
Gennadiy Civil's avatar
Gennadiy Civil committed
23
24
25
26
27
28
29

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.

### Getting started:

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

33
34
**GoogleMock** is an extension to GoogleTest for writing and using C++ mock
classes. See the separate [GoogleMock 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

54
GoogleTest 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

65
## Who Is Using GoogleTest?
66

67
In addition to many internal projects at Google, GoogleTest is also used by the
Gennadiy Civil's avatar
Gennadiy Civil committed
68
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

83
[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that
Gennadiy Civil's avatar
Gennadiy Civil committed
84
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
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
89
listener for GoogleTest 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
[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter)
97
98
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
99

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

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

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

109
110
111
GoogleTest 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 file an issue on the
dmauro's avatar
dmauro committed
112
113
[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

118
These are the base requirements to build and use GoogleTest from a source
119
package:
120

121
*   [Bazel](https://bazel.build/) or [CMake](https://cmake.org/). NOTE: Bazel is
122
    the build system that GoogleTest is using internally and tests against.
123
    CMake is community-supported.
124

ranodeepbanerjee's avatar
ranodeepbanerjee committed
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!