Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
googletest
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
googletest
Commits
ff49eded
Commit
ff49eded
authored
Aug 30, 2015
by
Billy Donahue
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #574 from BillyDonahue/undoc
Undoc
parents
24ecc348
dcec1ced
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
92 additions
and
193 deletions
+92
-193
README.md
README.md
+87
-43
README.md
googlemock/README.md
+0
-0
README.md
googletest/README.md
+5
-150
No files found.
README.md
View file @
ff49eded
# Google Test #
Welcome to
**Google Test**
, Google's C++ test framework!
Welcome to
**Google Test**
, Google's C++ test framework!
This GitHub repository is a merger of the formerly separate GoogleTest and GoogleMock projects.
This repository is a merger of the formerly separate GoogleTest and
These were so closely related that it makes sense to maintain and release them together.
GoogleMock projects. These were so closely related that it makes sense to
maintain and release them together.
Please see the project page above for more information as well as the
mailing list for questions, discussions, and development. There is
also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please
join us!
**Google Mock**
is an extension to Google Test for writing and using C++ mock
classes. See the separate
[
Google Mock documentation
](
googlemock/README.md
)
.
## GoogleTest ##
More detailed documentation for googletest (including build instructions) are
in its interior
[
googletest/README.md
](
googletest/README.md
)
file.
Based on the
[
XUnit
](
https://en.wikipedia.org/wiki/XUnit
)
architecture.
## Features ##
Supports automatic test discovery, a rich set of assertions, user-defined
assertions, death tests, fatal and non-fatal failures, value- and
*
An
[
XUnit
](
https://en.wikipedia.org/wiki/XUnit
)
test framework.
type-parameterized tests, various options for running the tests, and XML test
*
Test discovery.
report generation.
*
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.
## Platforms ##
## Platforms ##
...
@@ -29,12 +48,14 @@ Google test has been used on a variety of platforms:
...
@@ -29,12 +48,14 @@ Google test has been used on a variety of platforms:
In addition to many internal projects at Google, Google Test is also used by
In addition to many internal projects at Google, Google Test is also used by
the following notable projects:
the following notable projects:
*
The
[
Chromium projects
](
http://www.chromium.org/
)
(
behind
the Chrome browser and Chrome OS)
*
The
[
Chromium projects
](
http://www.chromium.org/
)
(
behind
the Chrome
*
The
[
LLVM
](
http://llvm.org/
)
compiler
browser and Chrome OS).
*
[
Protocol Buffers
](
http://code.google.com/p/protobuf/
)
(
Google's
data interchange format)
*
The
[
LLVM
](
http://llvm.org/
)
compiler.
*
The
[
OpenCV
](
http://opencv.org/
)
computer vision library
*
[
Protocol Buffers
](
http://code.google.com/p/protobuf/
)
, Google's data
interchange format.
*
The
[
OpenCV
](
http://opencv.org/
)
computer vision library.
##
Google Test-related open source p
rojects ##
##
Related Open Source P
rojects ##
[
Google Test UI
](
https://github.com/ospector/gtest-gbar
)
is test runner that runs
[
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
your test binary, allows you to track its progress via a progress bar, and
...
@@ -46,47 +67,70 @@ listener for Google Test that implements the
...
@@ -46,47 +67,70 @@ listener for Google Test that implements the
[
TAP protocol
](
http://en.wikipedia.org/wiki/Test_Anything_Protocol
)
for test
[
TAP protocol
](
http://en.wikipedia.org/wiki/Test_Anything_Protocol
)
for test
result output. If your test runner understands TAP, you may find it useful.
result output. If your test runner understands TAP, you may find it useful.
## About Google Mock ##
## Requirements ##
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
<googletestframework@googlegroups.com>
. Patches for fixing them are
even more welcome!
### Linux Requirements ###
These are the base requirements to build and use Google Test from a source
package (as described below):
*
GNU-compatible Make or gmake
*
POSIX-standard shell
*
POSIX(-2) Regular Expressions (regex.h)
*
A C++98-standard-compliant compiler
### Windows Requirements ###
**Google Mock**
is an extension to Google Test for writing and using C++ mock classes.
*
Microsoft Visual C++ v7.1 or newer
It is inspired by
[
jMock
](
http://www.jmock.org/
)
,
[
EasyMock
](
http://www.easymock.org/
)
,
and
[
Hamcrest
](
http://code.google.com/p/hamcrest/
)
, and designed with C++'s specifics in mind.
Google mock:
### Cygwin Requirements ###
*
lets you create mock classes trivially using simple macros.
*
Cygwin v1.5.25-14 or newer
*
supports a rich set of matchers and actions.
*
handles unordered, partially ordered, or completely ordered expectations.
*
is extensible by users.
We hope you find it useful!
### Mac OS X Requirements ###
## Using Google Mock Without Google Test ##
*
Mac OS X v10.4 Tiger or newer
Google Mock is not a testing framework itself. Instead, it needs a
*
XCode Developer Tools
testing framework for writing tests. Google Mock works seamlessly
with
[
Google Test
](
http://code.google.com/p/googletest/
)
, butj
you can also use it with
[
any C++ testing framework
](
googlemock/ForDummies.md#Using_Google_Mock_with_Any_Testing_Framework
)
.
##
Getting Started
##
##
# Requirements for Contributors #
##
If you are new to the project, we suggest that you read the user
We welcome patches. If you plan to contribute a patch, you need to
documentation in the following order:
build Google Test and its own tests from a git checkout (described
below), which has further requirements:
*
Learn the
[
basics
](
http://code.google.com/p/googletest/wiki/Primer
)
of Google Test, if you choose to use Google Mock with it (recommended).
*
[
Python
](
http://python.org/
)
v2.3 or newer (for running some of
*
Read
[
Google Mock for Dummies
](
ForDummies.md
)
.
the tests and re-generating certain source files from templates)
*
Read the instructions on how to
[
build Google Mock
](
http://code.google.com/p/googlemock/source/browse/trunk/README
)
.
*
[
CMake
](
http://www.cmake.org/
)
v2.6.4 or newer
You can also watch Zhanyong's
[
talk
](
http://www.youtube.com/watch?v=sYpCyLI47rM
)
on Google Mock's usage and implementation.
## Regenerating Source Files ##
Once you understand the basics, check out the rest of the docs:
Some of Google Test's source files are generated from templates (not
in the C++ sense) using a script.
For example, the
file include/gtest/internal/gtest-type-util.h.pump is used to generate
gtest-type-util.h in the same directory.
*
[
CheatSheet
](
googlemock/docs/CheatSheet.md
)
- all the commonly used stuff at a glance.
You don't need to worry about regenerating the source files
*
[
CookBook
](
googlemock/docs/CookBook.md
)
- recipes for getting things done, including advanced techniques.
unless you need to modify them. You would then modify the
corresponding
`.pump`
files and run the '
[
pump.py
](
googletest/scripts/pump.py
)
'
generator script. See the
[
Pump Manual
](
googletest/docs/PumpManual.md
)
.
If you need help, please check the
[
KnownIssues
](
googlemock/docs/KnownIssues.md
)
and
### Contributing Code ###
[
FrequentlyAskedQuestions
](
googlemock/docs/frequentlyaskedquestions.md
)
before
posting a question on the
[
googlemock discussion group
](
http://groups.google.com/group/googlemock
)
.
We'd love to have your help! Please read the Developer Guides if you are willing to contribute to the development.
We welcome patches. Please read the
[
Developer's Guide
](
googletest/docs/DevGuide.md
)
for how you can contribute. In particular, make sure you have signed
the Contributor License Agreement, or we won't be able to accept the
patch.
Happy
mock
ing!
Happy
test
ing!
googlemock/README.md
View file @
ff49eded
This diff is collapsed.
Click to expand it.
googletest/README.md
View file @
ff49eded
Google C++ Testing Framework
============================
https://github.com/google/googletest
### Generic Build Instructions ###
Overview
--------
Google's framework for writing C++ tests on a variety of platforms
(Linux, Mac OS X, Windows, Windows CE, Symbian, etc). Based on the
xUnit architecture. Supports automatic test discovery, a rich set of
assertions, user-defined assertions, death tests, fatal and non-fatal
failures, various options for running the tests, and XML test report
generation.
Please see the project page above for more information as well as the
mailing list for questions, discussions, and development. There is
also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please
join us!
Requirements for End Users
--------------------------
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
<googletestframework@googlegroups.com>
. Patches for fixing them are
even more welcome!
### Linux Requirements ###
These are the base requirements to build and use Google Test from a source
package (as described below):
*
GNU-compatible Make or gmake
*
POSIX-standard shell
*
POSIX(-2) Regular Expressions (regex.h)
*
A C++98-standard-compliant compiler
### Windows Requirements ###
*
Microsoft Visual C++ 7.1 or newer
### Cygwin Requirements ###
*
Cygwin 1.5.25-14 or newer
### Mac OS X Requirements ###
*
Mac OS X 10.4 Tiger or newer
*
Developer Tools Installed
Also, you'll need
[
CMake
](
http://www.cmake.org/
CMake) 2.6.4 or higher if
you want to build the samples using the provided CMake script, regardless
of the platform.
Requirements for Contributors
-----------------------------
We welcome patches. If you plan to contribute a patch, you need to
build Google Test and its own tests from a git checkout (described
below), which has further requirements:
*
[
Python
](
http://python.org/
)
version 2.3 or newer (for running some of the tests and
re-generating certain source files from templates)
*
[
CMake
](
http://www.cmake.org/
)
2.6.4 or newer
Getting the Source
------------------
Google Test's source is available from its GitHub repository at
<https://github.com/google/googletest>
.
The GitHub repository offers stable tagged releases available as .ZIP archives.
A Git checkout requires a few extra steps and some extra software
packages on your system, but lets you track the latest development and
make patches much more easily, so we highly encourage it.
### Source Package ###
Snapshots of Google Test's master branch can be downloaded directly with GitHub's
"Download ZIP" button on the main page.
Versioned releases are also available by clicking on
[
Releases
](
releases
)
in the project page.
### Git Checkout ###
To check out the master branch of Google Test, run the following git command:
git clone https://github.com/google/googletest.git (via HTTPS)
Setting up the Build
#### Setup ####
--------------------
To build Google Test and your tests that use it, you need to tell your
To build Google Test and your tests that use it, you need to tell your
build system where to find its headers and source files. The exact
build system where to find its headers and source files. The exact
way to do it depends on which build system you use, and is usually
way to do it depends on which build system you use, and is usually
straightforward.
straightforward.
###
Generic Build Instructions
###
###
# Build #
###
Suppose you put Google Test in directory
`${GTEST_DIR}`
. To build it,
Suppose you put Google Test in directory
`${GTEST_DIR}`
. To build it,
create a library build target (or a project as called by Visual Studio
create a library build target (or a project as called by Visual Studio
...
@@ -219,8 +126,7 @@ above, you need to either:
...
@@ -219,8 +126,7 @@ above, you need to either:
supported by Apple, but has been reported to work
supported by Apple, but has been reported to work
(http://stackoverflow.com/questions/5378518).
(http://stackoverflow.com/questions/5378518).
Tweaking Google Test
### Tweaking Google Test ###
--------------------
Google Test can be used in diverse environments. The default
Google Test can be used in diverse environments. The default
configuration may not work (or may not work well) out of the box in
configuration may not work (or may not work well) out of the box in
...
@@ -338,39 +244,7 @@ instead of
...
@@ -338,39 +244,7 @@ instead of
in order to define a test.
in order to define a test.
Upgrating from an Earlier Version
## Developing Google Test ##
---------------------------------
We strive to keep Google Test releases backward compatible.
Sometimes, though, we have to make some breaking changes for the
users' long-term benefits. This section describes what you'll need to
do if you are upgrading from an earlier version of Google Test.
### Upgrading from 1.3.0 or Earlier ###
You may need to explicitly enable or disable Google Test's own TR1
tuple library. See the instructions in section "Choosing a TR1 Tuple
Library".
### Upgrading from 1.4.0 or Earlier ###
The Autotools build script (configure + make) is no longer officially
supportted. You are encouraged to migrate to your own build system or
use CMake. If you still need to use Autotools, you can find
instructions in the README file from Google Test 1.4.0.
On platforms where the pthread library is available, Google Test uses
it in order to be thread-safe. See the "Multi-threaded Tests" section
for what this means to your build script.
If you use Microsoft Visual C++ 7.1 with exceptions disabled, Google
Test will no longer compile. This should affect very few people, as a
large portion of STL (including
<string>
) doesn't compile in this mode
anyway. We decided to stop supporting it in order to greatly simplify
Google Test's implementation.
Developing Google Test
----------------------
This section discusses how to make your own changes to Google Test.
This section discusses how to make your own changes to Google Test.
...
@@ -399,27 +273,8 @@ this is usually done by 'make'. To run the tests, do
...
@@ -399,27 +273,8 @@ this is usually done by 'make'. To run the tests, do
All tests should pass.
All tests should pass.
### Regenerating Source Files ###
Some of Google Test's source files are generated from templates (not
in the C++ sense) using a script. A template file is named FOO.pump,
where FOO is the name of the file it will generate. For example, the
file include/gtest/internal/gtest-type-util.h.pump is used to generate
gtest-type-util.h in the same directory.
Normally you don't need to worry about regenerating the source files,
Normally you don't need to worry about regenerating the source files,
unless you need to modify them. In that case, you should modify the
unless you need to modify them. In that case, you should modify the
corresponding .pump files instead and run the pump.py Python script to
corresponding .pump files instead and run the pump.py Python script to
regenerate them. You can find pump.py in the
[
scripts/
](
scripts/
)
directory.
regenerate them. You can find pump.py in the
[
scripts/
](
scripts/
)
directory.
Read the
[
Pump manual
](
docs/PumpManual.md
)
for how to use it.
Read the
[
Pump manual
](
docs/PumpManual.md
)
for how to use it.
### Contributing a Patch ###
We welcome patches. Please read the
[
Google Test developer's guide
](
docs/DevGuide.md
)
for how you can contribute. In particular, make sure you have signed
the Contributor License Agreement, or we won't be able to accept the
patch.
Happy testing!
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment