ut
C++20 μ(micro)/Unit Testing Framework (by boost-ext)
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) (by catchorg)
Our great sponsors
ut | Catch | |
---|---|---|
10 | 55 | |
1,197 | 17,965 | |
1.8% | 0.9% | |
7.0 | 9.2 | |
about 1 month ago | 7 days ago | |
C++ | C++ | |
Boost Software License 1.0 | 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.
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.
ut
Posts with mentions or reviews of ut.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-04-10.
-
[C++20][safety] static_assert is all you need (no leaks, no UB)
I don't think stepping through static_assert is a thing? Curious if it is, though. Since constexpr is either run-time or compile-time and static_assert is not a poor man's debugging facility could be to -Dstatic_assert(...) assert(__VA_ARGS__) and gdb the code. Alternatively, a more refined solution would be to use an UT framework (for example https://github.com/boost-ext/ut) which helps with that. IMHO, TDD can also limit the requirement of stepping into the code and with gurantees that the code is memory safe and UB safe there is less need for sanitizers and valgrind etc. depending on the coverage.
-
snatch -- A lightweight C++20 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.
-
[C++20] New way of meta-programming?
https://github.com/boost-ext/ut (for better user interface when defining tests without macros)
-
Getting started with Boost in 2022
https://github.com/boost-ext/ut from Kris Jusiak is worth checking
- How to unit test
-
Calculate Your Code Performance
C++: C++ has quite a number of benchmarking libraries some of the recent ones involving C++ 20's flexibility. The most notable being Google Bench and UT. C does not have many specific benchmarking libraries, but you can easily integrate C code with C++ benchmarking libraries in order to test the performance of your C code.
-
Benchmarking Code
UT
-
Another C++ unit testing framework without macros
In Boost.UT there is a number of different styles to add a parametrized test case. All of them are pretty cryptic bue to heavy isage of oeverloaded operators of custom "non-public" classes. Except for the for-loop method, in all other methods the list of parameter values goes after the test procedure definition. I find this inconvenient, as I want to see list of parameter value next to the test name. This is what I used to from the times I was coding a lot of unit tests in C#.
Catch
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-12-05.
- C++ Comparison Operator Craziness
-
How can I check the execution time of a program rendered in SFML?
https://github.com/catchorg/Catch2 (for unit testing, need to do timing yourself)
- Semi crise existentielle de développeur
-
`DestroyJavaVM()` failing on OpenJ9?
```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?
Include(FetchContent) FetchContent_Declare(Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git GIT_TAG v3.3.2 ) FetchContent_MakeAvailable(Catch2)
- Tracking the Fake GitHub Star Black Market
- The Little Things: Why you should always have benchmarks ready
-
Trying to add tests for my cmake for catch2 with ctest.
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
Unit test coverage by Catch2 framework.
- Catch2 added SKIP (and more built-in matchers)
What are some alternatives?
When comparing ut and Catch you can also consider the following projects:
Boost.Test - The reference C++ unit testing framework (TDD, xUnit, C++03/11/14/17)
Google Test - GoogleTest - Google Testing and Mocking Framework
FakeIt - C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
doctest - The fastest feature-rich C++11/14/17/20/23 single-header testing framework
test - A library for writing unit tests in Dart.
CppUTest - CppUTest unit testing and mocking framework for C/C++
KmTest - Kernel-mode C++ unit testing framework in BDD-style
Google Mock
test - Write unit and fuzz tests for Elm code.
CppUnit - C++ port of JUnit