A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
Go to file
Neal Coombes 396ecf6021 Cache std::ostringstream between assertions.
This is not thread safe, but I think that was already true of Catch.
The construction/destruction of the std::ostringstream is where the
vast majority of time is spent per assertion.  A simple test of
100000000 CHECK()s is reduced from around 60s to 7.4s
2017-06-25 15:53:59 +02:00
.github Added "How to test changes in PR" section to documentation 2017-06-22 18:56:10 +02:00
contrib Cosmetic fixes (whitespace and spelling) 2017-05-27 14:42:54 +02:00
docs Added "How to test changes in PR" section to documentation 2017-06-22 18:56:10 +02:00
include Cache std::ostringstream between assertions. 2017-06-25 15:53:59 +02:00
projects Cosmetic fixes (whitespace and spelling) 2017-05-27 14:42:54 +02:00
scripts Minor fixup in updateVcpkgPackage.py 2017-05-16 14:34:55 +02:00
single_include v1.9.5 2017-06-15 13:08:26 +02:00
.gitattributes Git Attributes, with control for line-endings 2013-10-18 07:53:05 +01:00
.gitignore Ignore .vs folder 2017-02-21 08:52:08 +00:00
.travis.yml Fix .travis.yml syntax 2017-04-20 22:54:17 +02:00
appveyor.yml Added Win32 UNICODE wmain support (#903) 2017-05-11 13:00:03 +02:00
catch-hand-icon.png Updated artwork 2017-03-01 16:47:04 +00:00
catch-icon-tiny.png Updated artwork 2017-03-01 16:47:04 +00:00
catch-logo-small.png Resized main logo again 2017-03-01 17:00:33 +00:00
CMakeLists.txt Add test for #914 (stringify truthy exprs in standard way) 2017-05-27 14:42:05 +02:00
LICENSE.txt Renamed licence file, license should now be detected by github 2017-03-20 08:59:25 +01:00
README.md v1.9.5 2017-06-15 13:08:26 +02:00

catch logo

Github Releases Build Status Build status

The latest, single header, version can be downloaded directly using this link

What's the Catch?

Catch stands for C++ Automated Test Cases in Headers and is a multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C). It is implemented entirely in a set of header files, but is packaged up as a single header for extra convenience.

How to use it

This documentation comprises these three parts:

More