README.md 4.4 KB
Newer Older
1

Billy Donahue's avatar
Billy Donahue committed
2
# Google Test #
Billy Donahue's avatar
Billy Donahue committed
3

Billy Donahue's avatar
Billy Donahue committed
4
[![Build Status](https://travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest)
Gennadiy Civil's avatar
Gennadiy Civil committed
5
[![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
6

Billy Donahue's avatar
Billy Donahue committed
7
Welcome to **Google Test**, Google's C++ test framework!
8

Billy Donahue's avatar
Billy Donahue committed
9
10
11
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.
12

Billy Donahue's avatar
Billy Donahue committed
13
14
Please see the project page above for more information as well as the
mailing list for questions, discussions, and development.  There is
15
also an IRC channel on [OFTC](https://webchat.oftc.net/) (irc.oftc.net) #gtest available.  Please
Billy Donahue's avatar
Billy Donahue committed
16
join us!
Billy Donahue's avatar
Billy Donahue committed
17

18
19
20
Getting started information for **Google Test** is available in the 
[Google Test Primer](googletest/docs/Primer.md) documentation.

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

Billy Donahue's avatar
Billy Donahue committed
24
25
More detailed documentation for googletest (including build instructions) are
in its interior [googletest/README.md](googletest/README.md) file.
Billy Donahue's avatar
Billy Donahue committed
26
27
28

## Features ##

Herbert Thielen's avatar
Herbert Thielen committed
29
  * An [xUnit](https://en.wikipedia.org/wiki/XUnit) test framework.
Billy Donahue's avatar
Billy Donahue committed
30
31
32
33
34
35
36
37
38
  * 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.
39

Billy Donahue's avatar
Billy Donahue committed
40
## Platforms ##
41

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

Billy Donahue's avatar
Billy Donahue committed
44
45
46
47
48
49
50
  * Linux
  * Mac OS X
  * Windows
  * Cygwin
  * MinGW
  * Windows Mobile
  * Symbian
51

Billy Donahue's avatar
Billy Donahue committed
52
## Who Is Using Google Test? ##
53

Billy Donahue's avatar
Billy Donahue committed
54
55
In addition to many internal projects at Google, Google Test is also used by
the following notable projects:
56

Billy Donahue's avatar
Billy Donahue committed
57
58
59
  * The [Chromium projects](http://www.chromium.org/) (behind the Chrome
    browser and Chrome OS).
  * The [LLVM](http://llvm.org/) compiler.
60
  * [Protocol Buffers](https://github.com/google/protobuf), Google's data
Billy Donahue's avatar
Billy Donahue committed
61
62
    interchange format.
  * The [OpenCV](http://opencv.org/) computer vision library.
Eduardo Caceres's avatar
Eduardo Caceres committed
63
  * [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn): header only, dependency-free deep learning framework in C++11.
64

Billy Donahue's avatar
Billy Donahue committed
65
## Related Open Source Projects ##
66

67
[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.
68

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

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

79
80
81
[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.

Billy Donahue's avatar
Billy Donahue committed
82
## Requirements ##
83

Billy Donahue's avatar
Billy Donahue committed
84
85
86
87
88
89
90
Google Test is designed to have fairly minimal requirements to build
and use with your projects, but there are some.  Currently, we support
Linux, Windows, Mac OS X, and Cygwin.  We will also make our best
effort to support other platforms (e.g. Solaris, AIX, and z/OS).
However, since core members of the Google Test project have no access
to these platforms, Google Test may have outstanding issues there.  If
you notice any problems on your platform, please notify
91
[googletestframework@googlegroups.com](https://groups.google.com/forum/#!forum/googletestframework). Patches for fixing them are
Billy Donahue's avatar
Billy Donahue committed
92
93
94
even more welcome!

### Linux Requirements ###
95

Billy Donahue's avatar
Billy Donahue committed
96
97
These are the base requirements to build and use Google Test from a source
package (as described below):
98

Billy Donahue's avatar
Billy Donahue committed
99
100
101
102
  * GNU-compatible Make or gmake
  * POSIX-standard shell
  * POSIX(-2) Regular Expressions (regex.h)
  * A C++98-standard-compliant compiler
103

Billy Donahue's avatar
Billy Donahue committed
104
### Windows Requirements ###
105

106
  * Microsoft Visual C++ 2010 or newer
Billy Donahue's avatar
Billy Donahue committed
107

Billy Donahue's avatar
Billy Donahue committed
108
### Cygwin Requirements ###
109

Billy Donahue's avatar
Billy Donahue committed
110
  * Cygwin v1.5.25-14 or newer
111

Billy Donahue's avatar
Billy Donahue committed
112
### Mac OS X Requirements ###
113

Billy Donahue's avatar
Billy Donahue committed
114
  * Mac OS X v10.4 Tiger or newer
Matt Rajca's avatar
Matt Rajca committed
115
  * Xcode Developer Tools
116

117
## Contributing change
118

119
120
Please read the [`CONTRIBUTING.md`](CONTRIBUTING.md) for details on
how to contribute to this project.
121

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