upp11 VS Catch

Compare upp11 vs Catch and see what are their differences.


C++11 lightweight single header unit test framework (by DronMDF)


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) (by catchorg)
Our great sponsors
  • Mergify - Updating dependencies is time-consuming.
  • SonarCloud - Analyze your C and C++ projects with just one click.
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
upp11 Catch
0 53
8 17,095
- 1.2%
0.0 8.9
about 7 years ago 1 day ago
C++ C++
GNU General Public License v3.0 only Boost Software License 1.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of upp11. We have used some of these posts to build our list of alternatives and similar projects.

We haven't tracked posts mentioning upp11 yet.
Tracking mentions began in Dec 2020.


Posts with mentions or reviews of Catch. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-22.
  • `DestroyJavaVM()` failing on OpenJ9?
    2 projects | /r/javahelp | 22 Apr 2023
    ```c++ // https://github.com/catchorg/Catch2/tree/Catch1.x // https://github.com/philsquared/Catch/releases/download/v1.12.2/catch.hpp
  • How do you use the Catch testing library?
    4 projects | /r/cpp_questions | 9 Apr 2023
    Include(FetchContent) FetchContent_Declare(Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.3.2 ) FetchContent_MakeAvailable(Catch2)
    4 projects | /r/cpp_questions | 9 Apr 2023
    set(CATCH_VERSION "" CACHE STRING "") Include(FetchContent) FetchContent_Declare(Catch2 URL https://github.com/catchorg/Catch2/archive/refs/tags/v${CATCH_VERSION}.tar.gz ) FetchContent_MakeAvailable(Catch2) target_link_libraries( Catch2::Catch2)
  • Trying to add tests for my cmake for catch2 with ctest.
    2 projects | /r/cmake | 27 Feb 2023
    Another possible issue would be the include(Catch) in your root cmakelists.txt . To include Catch there it must be part of your module path. Otherwise you have to include the path to that catch2 cmake file. Here is that file in their repository - https://github.com/catchorg/Catch2/blob/devel/extras/Catch.cmake . I recon that CMake doesn't know about this file since you call find_package(Catch2 REQUIRED) later in your subdirectory
  • Seeking Improve Advice on my C++ Network Library
    7 projects | /r/cpp | 6 Feb 2023
    Unit test coverage by Catch2 framework.
  • snitch v1.0 -- A lightweight C++20 testing framework
    4 projects | /r/cpp | 16 Jan 2023
    Looks good but currently at least REQUIRE (most likely all the other checks too but I didn't test that) fails to correctly evaluate some expressions, due to fundamental problems with macros. One example is described in this issue of the Catch2 repository.
  • IDE for CPP(leetcode)
    4 projects | /r/cpp_questions | 3 Jan 2023
    However, you can use a unit test framework like GoogleTest or Catch2 whic creates a main() function for you which allows you to run single functions, as long as they have been created through some preprocessor macros. Then you can use a VS Code test adapter like this or this which may let you run a single test by right clicking it directly in VS Code.
  • CPM.cmake to make CMake's FetchContent easier
    4 projects | dev.to | 28 Dec 2022
    include(FetchContent) FetchContent_Declare( Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.0.0-preview4 ) FetchContent_Declare( fmt GIT_REPOSITORY https://github.com/fmtlib/fmt.git GIT_TAG 9.1.0 ) FetchContent_Declare( scnlib GIT_REPOSITORY https://github.com/eliaskosunen/scnlib.git GIT_TAG v1.1.2 ) FetchContent_MakeAvailable(Catch2 fmt scnlib)
  • New to C++
    2 projects | /r/cpp | 20 Dec 2022
    Make sure you write unit tests, I use gtest but catch2 is also good.
  • Transitioning from Java to C++
    4 projects | /r/codereview | 15 Dec 2022
    I've only ever personally used Catch2, Boost.Test, and a few proprietary unit test frameworks from my company. I enjoy using both Catch2 and Boost.Test, but they have a very different feel. Of these two I find Catch2 easier to get started with. It also has very good CMake an CTest integration. I have heard good things about GoogleTest, but I have never used it myself. GoogleTest also has good CTest support

What are some alternatives?

When comparing upp11 and Catch you can also consider the following projects:

Google Test - GoogleTest - Google Testing and Mocking Framework

doctest - The fastest feature-rich C++11/14/17/20/23 single-header testing framework

Boost.Test - The reference C++ unit testing framework (TDD, xUnit, C++03/11/14/17)

CppUTest - CppUTest unit testing and mocking framework for C/C++

Google Mock

CppUnit - C++ port of JUnit

benchmark - A microbenchmark support library

Unity Test API - Simple Unit Testing for C

UnitTest++ - A lightweight unit testing framework for C++

catch2-with-gmock - Exmaple of using Catch2 with GMock

fff - A testing micro framework for creating function test doubles

KmTest - Kernel-mode C++ unit testing framework in BDD-style