readme merging

This commit is contained in:
Billy Donahue 2015-08-30 12:36:37 -04:00
parent b55ac7f36f
commit 23bd6d8a9b
3 changed files with 122 additions and 154 deletions

115
README.md
View File

@ -1,5 +1,5 @@
## Google Test ##
# Google Test #
Welcome to **Google Test**, Google's C++ test framework!
@ -7,18 +7,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.
Google Test conforms to the [XUnit](https://en.wikipedia.org/wiki/XUnit)
test framework pattern. It features:
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!
* 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
**Google Mock** is an extension to Google Test for writing and using C++ mock
classes. See the separate [Google Mock documentation](googlemock/README.md).
More detailed instructions for googletest are in its interior
[README.md](googletest/README.md) file.
## Features ##
* 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.
## Platforms ##
@ -56,60 +67,63 @@ listener for Google Test that implements the
[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.
## About Google Mock ##
## Requirements ##
**Google Mock** is an extension to Google Test for writing and using C++ mock
classes. 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 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!
Google mock:
### Linux Requirements ###
* lets you create mock classes trivially using simple macros.
* supports a rich set of matchers and actions.
* handles unordered, partially ordered, or completely ordered expectations.
* is extensible by users.
These are the base requirements to build and use Google Test from a source
package (as described below):
We hope you find it useful!
* GNU-compatible Make or gmake
* POSIX-standard shell
* POSIX(-2) Regular Expressions (regex.h)
* A C++98-standard-compliant compiler
### Using Google Mock Without Google Test ###
### Windows Requirements ###
Google Mock is not a testing framework itself. Instead, it needs a
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).
* Microsoft Visual C++ v7.1 or newer
## Getting Started ##
### Cygwin Requirements ###
If you are new to the project, we suggest that you read the user
documentation in the following order:
* Cygwin v1.5.25-14 or newer
* Learn the [basics](googletest/docs/Primer.md) of
Google Test, if you choose to use Google Mock with it (recommended).
* Read [Google Mock for Dummies](googlemock/docs/ForDummies.md).
* Read the instructions on how to [build Google Mock](googlemock/README.md).
### Mac OS X Requirements ###
You can also watch Zhanyong's [talk](http://www.youtube.com/watch?v=sYpCyLI47rM) on Google Mock's usage and implementation.
* Mac OS X v10.4 Tiger or newer
* XCode Developer Tools
Once you understand the basics, check out the rest of the docs:
Also, you'll need [CMake](http://www.cmake.org/) v2.6.4 or higher if
you want to build the samples using the provided CMake script, regardless
of the platform.
* [CheatSheet](googlemock/docs/CheatSheet.md) - all the commonly used stuff
at a glance.
* [CookBook](googlemock/docs/CookBook.md) - recipes for getting things done,
including advanced techniques.
### Requirements for Contributors ###
If you need help, please check the
[KnownIssues](googlemock/docs/KnownIssues.md) and
[FrequentlyAskedQuestions](googlemock/docs/frequentlyaskedquestions.md) before
posting a question on the
[discussion group](http://groups.google.com/group/googlemock).
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:
### Regenerating Source Files ###
* [Python](http://python.org/) v2.3 or newer (for running some of
the tests and re-generating certain source files from templates)
* [CMake](http://www.cmake.org/) v2.6.4 or newer
## Regenerating Source Files ##
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.
You don't need to worry about regenerating the source files
unless you need to modify them. You would then modify the
corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)'
@ -117,7 +131,8 @@ generator script. See the [Pump Manual](googletest/docs/PumpManual.md).
### Contributing Code ###
We welcome patches. Please read the [Developer's Guide](docs/DevGuide.md)
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.

View File

@ -1,14 +1,28 @@
## Google C++ Mocking Framework ##
## Google Mock ##
<http://github.com/google/googlemock/>
The Google C++ mocking framework.
### Overview ###
Google's framework for writing and using C++ mock classes on a variety
of platforms (Linux, Mac OS X, Windows, Windows CE, Symbian, etc).
Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
specifics in mind, it can help you derive better designs of your
system and write better tests.
Google's framework for writing and using C++ mock classes.
It can help you derive better designs of your system and write better tests.
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:
* lets you create mock classes trivially using simple macros.
* 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!
### Features ###
@ -34,6 +48,39 @@ Please note that code under [scripts/generator](scripts/generator/) is
from [cppclean](http://code.google.com/p/cppclean/) and released under
the Apache License, which is different from Google Mock's license.
## Getting Started ##
If you are new to the project, we suggest that you read the user
documentation in the following order:
* Learn the [basics](../googletest/docs/Primer.md) of
Google Test, if you choose to use Google Mock with it (recommended).
* Read [Google Mock for Dummies](docs/ForDummies.md).
* Read the instructions below on how to build Google Mock.
You can also watch Zhanyong's [talk](http://www.youtube.com/watch?v=sYpCyLI47rM) on Google Mock's usage and implementation.
Once you understand the basics, check out the rest of the docs:
* [CheatSheet](googlemock/docs/CheatSheet.md) - all the commonly used stuff
at a glance.
* [CookBook](googlemock/docs/CookBook.md) - recipes for getting things done,
including advanced techniques.
If you need help, please check the
[KnownIssues](googlemock/docs/KnownIssues.md) and
[FrequentlyAskedQuestions](googlemock/docs/frequentlyaskedquestions.md) before
posting a question on the
[discussion group](http://groups.google.com/group/googlemock).
### Using Google Mock Without Google Test ###
Google Mock is not a testing framework itself. Instead, it needs a
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).
### Requirements for End Users ###
Google Mock is implemented on top of [Google Test](

View File

@ -1,78 +1,14 @@
## 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
## Setting up the Build ##
#### Setup ####
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
way to do it depends on which build system you use, and is usually
straightforward.
### Generic Build Instructions ###
#### Build ####
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
@ -308,36 +244,6 @@ instead of
in order to define a test.
### Upgrating from an Earlier Version ###
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.