]>
Commit | Line | Data |
---|---|---|
31f18b77 FG |
1 | |
2 | # Google Test # | |
3 | ||
4 | [![Build Status](https://travis-ci.org/google/googletest.svg?branch=master)](https://travis-ci.org/google/googletest) | |
5 | ||
6 | Welcome to **Google Test**, Google's C++ test framework! | |
7 | ||
8 | This repository is a merger of the formerly separate GoogleTest and | |
9 | GoogleMock projects. These were so closely related that it makes sense to | |
10 | maintain and release them together. | |
11 | ||
12 | Please see the project page above for more information as well as the | |
13 | mailing list for questions, discussions, and development. There is | |
14 | also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please | |
15 | join us! | |
16 | ||
17 | Getting started information for **Google Test** is available in the | |
18 | [Google Test Primer](googletest/docs/Primer.md) documentation. | |
19 | ||
20 | **Google Mock** is an extension to Google Test for writing and using C++ mock | |
21 | classes. See the separate [Google Mock documentation](googlemock/README.md). | |
22 | ||
23 | More detailed documentation for googletest (including build instructions) are | |
24 | in its interior [googletest/README.md](googletest/README.md) file. | |
25 | ||
26 | ## Features ## | |
27 | ||
28 | * An [XUnit](https://en.wikipedia.org/wiki/XUnit) test framework. | |
29 | * Test discovery. | |
30 | * A rich set of assertions. | |
31 | * User-defined assertions. | |
32 | * Death tests. | |
33 | * Fatal and non-fatal failures. | |
34 | * Value-parameterized tests. | |
35 | * Type-parameterized tests. | |
36 | * Various options for running the tests. | |
37 | * XML test report generation. | |
38 | ||
39 | ## Platforms ## | |
40 | ||
41 | Google test has been used on a variety of platforms: | |
42 | ||
43 | * Linux | |
44 | * Mac OS X | |
45 | * Windows | |
46 | * Cygwin | |
47 | * MinGW | |
48 | * Windows Mobile | |
49 | * Symbian | |
50 | ||
51 | ## Who Is Using Google Test? ## | |
52 | ||
53 | In addition to many internal projects at Google, Google Test is also used by | |
54 | the following notable projects: | |
55 | ||
56 | * The [Chromium projects](http://www.chromium.org/) (behind the Chrome | |
57 | browser and Chrome OS). | |
58 | * The [LLVM](http://llvm.org/) compiler. | |
59 | * [Protocol Buffers](https://github.com/google/protobuf), Google's data | |
60 | interchange format. | |
61 | * The [OpenCV](http://opencv.org/) computer vision library. | |
62 | ||
63 | ## Related Open Source Projects ## | |
64 | ||
65 | [Google Test UI](https://github.com/ospector/gtest-gbar) is test runner that runs | |
66 | your test binary, allows you to track its progress via a progress bar, and | |
67 | displays a list of test failures. Clicking on one shows failure text. Google | |
68 | Test UI is written in C#. | |
69 | ||
70 | [GTest TAP Listener](https://github.com/kinow/gtest-tap-listener) is an event | |
71 | listener for Google Test that implements the | |
72 | [TAP protocol](https://en.wikipedia.org/wiki/Test_Anything_Protocol) for test | |
73 | result output. If your test runner understands TAP, you may find it useful. | |
74 | ||
75 | ## Requirements ## | |
76 | ||
77 | Google Test is designed to have fairly minimal requirements to build | |
78 | and use with your projects, but there are some. Currently, we support | |
79 | Linux, Windows, Mac OS X, and Cygwin. We will also make our best | |
80 | effort to support other platforms (e.g. Solaris, AIX, and z/OS). | |
81 | However, since core members of the Google Test project have no access | |
82 | to these platforms, Google Test may have outstanding issues there. If | |
83 | you notice any problems on your platform, please notify | |
84 | <googletestframework@googlegroups.com>. Patches for fixing them are | |
85 | even more welcome! | |
86 | ||
87 | ### Linux Requirements ### | |
88 | ||
89 | These are the base requirements to build and use Google Test from a source | |
90 | package (as described below): | |
91 | ||
92 | * GNU-compatible Make or gmake | |
93 | * POSIX-standard shell | |
94 | * POSIX(-2) Regular Expressions (regex.h) | |
95 | * A C++98-standard-compliant compiler | |
96 | ||
97 | ### Windows Requirements ### | |
98 | ||
99 | * Microsoft Visual C++ v7.1 or newer | |
100 | ||
101 | ### Cygwin Requirements ### | |
102 | ||
103 | * Cygwin v1.5.25-14 or newer | |
104 | ||
105 | ### Mac OS X Requirements ### | |
106 | ||
107 | * Mac OS X v10.4 Tiger or newer | |
108 | * Xcode Developer Tools | |
109 | ||
110 | ### Requirements for Contributors ### | |
111 | ||
112 | We welcome patches. If you plan to contribute a patch, you need to | |
113 | build Google Test and its own tests from a git checkout (described | |
114 | below), which has further requirements: | |
115 | ||
116 | * [Python](https://www.python.org/) v2.3 or newer (for running some of | |
117 | the tests and re-generating certain source files from templates) | |
118 | * [CMake](https://cmake.org/) v2.6.4 or newer | |
119 | ||
120 | ## Regenerating Source Files ## | |
121 | ||
122 | Some of Google Test's source files are generated from templates (not | |
123 | in the C++ sense) using a script. | |
124 | For example, the | |
125 | file include/gtest/internal/gtest-type-util.h.pump is used to generate | |
126 | gtest-type-util.h in the same directory. | |
127 | ||
128 | You don't need to worry about regenerating the source files | |
129 | unless you need to modify them. You would then modify the | |
130 | corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)' | |
131 | generator script. See the [Pump Manual](googletest/docs/PumpManual.md). | |
132 | ||
133 | ### Contributing Code ### | |
134 | ||
135 | We welcome patches. Please read the | |
136 | [Developer's Guide](googletest/docs/DevGuide.md) | |
137 | for how you can contribute. In particular, make sure you have signed | |
138 | the Contributor License Agreement, or we won't be able to accept the | |
139 | patch. | |
140 | ||
141 | Happy testing! |