mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 21:36:11 +01:00
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)
2375a7f5b7
Set `_CATCH_DISCOVER_TESTS_SCRIPT` helper variable globally. Otherwise in a scoped call (like `add_subdirectory()`) the variable gets lost. This lost variable results in a post build error with not much information to lead to the root of the problem. This enables the usage of the helper script with the following example structure - CMakeLists.txt (project root with `add_subdirectory(external/catch2)` - external/catch2 - CMakeLists.txt (contents listed below) - contrib/Catch.cmake - contrib/CatchAddTests.cmake - catch2/catch.hpp - tests - CMakeLists.txt (add tests with `catch_discover_tests(${PROJECT_NAME})`) contents of project specific helper `external/catch2/CMakeLists.txt` ```cmake cmake_minimum_required (VERSION 3.1...${CMAKE_VERSION}) project(Catch2 LANGUAGES CXX VERSION 2.13.3) add_library(Catch2 INTERFACE) target_include_directories(Catch2 INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> ) # provide a namespaced alias for clients to 'link' against if catch is included as a sub-project add_library(Catch2::Catch2 ALIAS Catch2) include(contrib/Catch.cmake) ``` |
||
---|---|---|
.conan | ||
.github | ||
artwork | ||
CMake | ||
contrib | ||
docs | ||
examples | ||
include | ||
misc | ||
projects | ||
scripts | ||
single_include/catch2 | ||
src | ||
third_party | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
appveyor.yml | ||
BUILD.bazel | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
codecov.yml | ||
conanfile.py | ||
LICENSE.txt | ||
README.md | ||
WORKSPACE |
The latest version of the single header can be downloaded directly using this link
Catch2 is released!
If you've been using an earlier version of Catch, please see the Breaking Changes section of the release notes before moving to Catch2. You might also like to read this blog post for more details.
What's the Catch?
Catch2 is a multi-paradigm test framework for C++. which also supports Objective-C (and maybe C). It is primarily distributed as a single header file, although certain extensions may require additional headers.
How to use it
This documentation comprises these three parts:
- Why do we need yet another C++ Test Framework?
- Tutorial - getting started
- Reference section - all the details
More
- Issues and bugs can be raised on the Issue tracker on GitHub
- For discussion or questions please use the dedicated Google Groups forum or our Discord
- See who else is using Catch2