Commit 23bd6d8a authored by Billy Donahue's avatar Billy Donahue
Browse files

readme merging

parent b55ac7f3
## Google Test ## # Google Test #
Welcome to **Google Test**, Google's C++ test framework! Welcome to **Google Test**, Google's C++ test framework!
...@@ -7,18 +7,29 @@ This repository is a merger of the formerly separate GoogleTest and ...@@ -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 GoogleMock projects. These were so closely related that it makes sense to
maintain and release them together. maintain and release them together.
Google Test conforms to the [XUnit](https://en.wikipedia.org/wiki/XUnit) Please see the project page above for more information as well as the
test framework pattern. It features: 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 **Google Mock** is an extension to Google Test for writing and using C++ mock
* a rich set of assertions classes. See the separate [Google Mock documentation](googlemock/README.md).
* user-defined assertions
* death tests More detailed instructions for googletest are in its interior
* fatal and non-fatal failures [README.md](googletest/README.md) file.
* value-parameterized tests
* type-parameterized tests ## Features ##
* various options for running the tests
* XML test report generation * 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 ## ## Platforms ##
...@@ -56,60 +67,63 @@ listener for Google Test that implements the ...@@ -56,60 +67,63 @@ 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 Mock** is an extension to Google Test for writing and using C++ mock Google Test is designed to have fairly minimal requirements to build
classes. It is inspired by and use with your projects, but there are some. Currently, we support
[jMock](http://www.jmock.org/), Linux, Windows, Mac OS X, and Cygwin. We will also make our best
[EasyMock](http://www.easymock.org/), and effort to support other platforms (e.g. Solaris, AIX, and z/OS).
[Hamcrest](http://code.google.com/p/hamcrest/), However, since core members of the Google Test project have no access
and designed with C++'s specifics in mind. 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 ###
Google mock: These are the base requirements to build and use Google Test from a source
package (as described below):
* lets you create mock classes trivially using simple macros. * GNU-compatible Make or gmake
* supports a rich set of matchers and actions. * POSIX-standard shell
* handles unordered, partially ordered, or completely ordered expectations. * POSIX(-2) Regular Expressions (regex.h)
* is extensible by users. * A C++98-standard-compliant compiler
We hope you find it useful! ### Windows Requirements ###
### Using Google Mock Without Google Test ### * Microsoft Visual C++ v7.1 or newer
Google Mock is not a testing framework itself. Instead, it needs a ### Cygwin Requirements ###
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 ## * Cygwin v1.5.25-14 or newer
If you are new to the project, we suggest that you read the user ### Mac OS X Requirements ###
documentation in the following order:
* Learn the [basics](googletest/docs/Primer.md) of * Mac OS X v10.4 Tiger or newer
Google Test, if you choose to use Google Mock with it (recommended). * XCode Developer Tools
* Read [Google Mock for Dummies](googlemock/docs/ForDummies.md).
* Read the instructions on how to [build Google Mock](googlemock/README.md).
You can also watch Zhanyong's [talk](http://www.youtube.com/watch?v=sYpCyLI47rM) on Google Mock's usage and implementation. 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.
Once you understand the basics, check out the rest of the docs: ### Requirements for Contributors ###
* [CheatSheet](googlemock/docs/CheatSheet.md) - all the commonly used stuff We welcome patches. If you plan to contribute a patch, you need to
at a glance. build Google Test and its own tests from a git checkout (described
* [CookBook](googlemock/docs/CookBook.md) - recipes for getting things done, below), which has further requirements:
including advanced techniques.
If you need help, please check the * [Python](http://python.org/) v2.3 or newer (for running some of
[KnownIssues](googlemock/docs/KnownIssues.md) and the tests and re-generating certain source files from templates)
[FrequentlyAskedQuestions](googlemock/docs/frequentlyaskedquestions.md) before * [CMake](http://www.cmake.org/) v2.6.4 or newer
posting a question on the
[discussion group](http://groups.google.com/group/googlemock).
### Regenerating Source Files ### ## Regenerating Source Files ##
Some of Google Test's source files are generated from templates (not Some of Google Test's source files are generated from templates (not
in the C++ sense) using a script. 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 You don't need to worry about regenerating the source files
unless you need to modify them. You would then modify the unless you need to modify them. You would then modify the
corresponding `.pump` files and run the '[pump.py](googletest/scripts/pump.py)' 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). ...@@ -117,7 +131,8 @@ generator script. See the [Pump Manual](googletest/docs/PumpManual.md).
### Contributing Code ### ### 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 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 the Contributor License Agreement, or we won't be able to accept the
patch. patch.
......
## Google C++ Mocking Framework ## ## Google Mock ##
<http://github.com/google/googlemock/> The Google C++ mocking framework.
### Overview ### ### Overview ###
Google's framework for writing and using C++ mock classes on a variety Google's framework for writing and using C++ mock classes.
of platforms (Linux, Mac OS X, Windows, Windows CE, Symbian, etc). It can help you derive better designs of your system and write better tests.
Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
specifics in mind, it can help you derive better designs of your It is inspired by:
system and write better tests.
* [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 ### ### Features ###
...@@ -34,6 +48,39 @@ Please note that code under [scripts/generator](scripts/generator/) is ...@@ -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 from [cppclean](http://code.google.com/p/cppclean/) and released under
the Apache License, which is different from Google Mock's license. 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 ### ### Requirements for End Users ###
Google Mock is implemented on top of [Google Test]( Google Mock is implemented on top of [Google Test](
......
## 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 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
...@@ -308,36 +244,6 @@ instead of ...@@ -308,36 +244,6 @@ instead of
in order to define a test. 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 ## ## 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.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment