README.md 4.52 KB
Newer Older
1
# GoogleTest
2

Abseil Team's avatar
Abseil Team 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

Abseil Team's avatar
Abseil Team 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

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

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

Abseil Team's avatar
Abseil Team committed
52
## Supported Platforms
53

Abseil Team's avatar
Abseil Team committed
54
55
56
57
58
59
60
61
62
63
64
65
66
GoogleTest requires a codebase and compiler compliant with the C++11 standard or
newer.

The GoogleTest code is officially supported on the following platforms.
Operating systems or tools not listed below are community-supported. For
community-supported platforms, patches that do not complicate the code may be
considered.

If you notice any problems on your platform, please file an issue on the
[GoogleTest GitHub Issue Tracker](https://github.com/google/googletest/issues).
Pull requests containing fixes are welcome!

### Operating Systems
67

Gennadiy Civil's avatar
Gennadiy Civil committed
68
*   Linux
Abseil Team's avatar
Abseil Team committed
69
*   macOS
Gennadiy Civil's avatar
Gennadiy Civil committed
70
*   Windows
Abseil Team's avatar
Abseil Team committed
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

### Compilers

*   gcc 5.0+
*   clang 5.0+
*   MSVC 2015+

**macOS users:** Xcode 9.3+ provides clang 5.0+.

### Build Systems

*   [Bazel](https://bazel.build/)
*   [CMake](https://cmake.org/)

**Note:** Bazel is the build system used by the team internally and in tests.
CMake is supported on a best-effort basis and by the community.
87

88
## Who Is Using GoogleTest?
89

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

Gennadiy Civil's avatar
Gennadiy Civil committed
93
94
95
96
*   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
97
    interchange format.
Gennadiy Civil's avatar
Gennadiy Civil committed
98
*   The [OpenCV](http://opencv.org/) computer vision library.
99

Gennadiy Civil's avatar
Gennadiy Civil committed
100
## Related Open Source Projects
101

Gennadiy Civil's avatar
Gennadiy Civil committed
102
103
104
[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.
105

106
[GoogleTest UI](https://github.com/ospector/gtest-gbar) is a test runner that
Gennadiy Civil's avatar
Gennadiy Civil committed
107
runs your test binary, allows you to track its progress via a progress bar, and
Billy Donahue's avatar
Billy Donahue committed
108
109
displays a list of test failures. Clicking on one shows failure text. Google
Test UI is written in C#.
110

Billy Donahue's avatar
Billy Donahue committed
111
[GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event
112
listener for GoogleTest that implements the
113
[TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test
Billy Donahue's avatar
Billy Donahue committed
114
result output. If your test runner understands TAP, you may find it useful.
115

116
117
118
[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
119
[GoogleTest Adapter](https://marketplace.visualstudio.com/items?itemName=DavidSchuldenfrei.gtest-adapter)
120
121
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
122

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

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

Abseil Team's avatar
Abseil Team committed
130
## Contributing Changes
131

Abseil Team's avatar
Abseil Team committed
132
Please read [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on how to
Gennadiy Civil's avatar
Gennadiy Civil committed
133
contribute to this project.
134

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