snatch -- A lightweight C++20 testing framework

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • ut

    C++20 μ(micro)/Unit Testing Framework

  • It was not easy, I had to modify Boost UT to get it to run my tests. It doesn't support type-parametrized tests when the type parameter is non-copiable, which was the case for me. This is a symptom of a larger issue, which is that it relies on std::apply and std::tuple to generate the type-parametrized tests, which in turns requires instantiating the tuple and the contained objects (even though these instances aren't actually used; eh). That's a no go for me, since I need to carefully monitor when instance are created, and this was throwing off my test code. I had to effectively disable these checks to get it to run without failures. Then there was a similar issue with expect(), which doesn't work if part of the expression is non-copiable. I reported these issues to them.

  • snitch

    Lightweight C++20 testing framework. (by snitch-org)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Catch

    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)

  • Author here! This testing framework is meant to have a very small footprint, in terms of compilation time, executable size, and runtime, but still be super easy to use and able to print nicely presented messages when assertions fail. It was modeled after Catch2, and reproduces its convenient REQUIRE(expr) and CHECK(expr) assertion macros.

  • observable_unique_ptr

    Unique-ownership smart pointers with observable lifetime.

  • I initially created this library to test another library of mine (observable_unique_ptr). I had been using Catch2 so far, and was reasonably happy with it, but ended up hitting a number of issues.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts