The fastest feature-rich C++11/14/17/20 single-header testing framework for unit tests and TDD
Usage
Make sure to add the stable cppget.org
repositories to your project's repositories.manifest
to be able to fetch the packages.
:
role: prerequisite
location: https://pkg.cppget.org/1/stable
# trust: ...
Add the respective dependency in your project's manifest
file to make the package available for import.
depends: doctest ^ 2.4.10
The header-only C++ library to use doctest as your unit testing framework can be imported by the following declaration in a buildfile
.
import doctest = doctest%lib{doctest}
Reviews
Builds
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_fedora_40-gcc_14-bindist |
timestamp |
2025-07-05 16:09:49 UTC (05:53:35 hours ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-static_O3 |
timestamp |
2025-07-04 05:33:25 UTC (01 16:29:59 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-O3 |
timestamp |
2025-07-04 05:32:37 UTC (01 16:30:48 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
timestamp |
2025-07-04 05:30:48 UTC (01 16:32:37 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_14 |
timestamp |
2025-07-04 05:24:40 UTC (01 16:38:44 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10-static_O2 |
timestamp |
2025-07-04 01:47:45 UTC (01 20:15:40 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10 |
timestamp |
2025-07-04 01:47:43 UTC (01 20:15:42 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.10-O2 |
timestamp |
2025-07-04 01:46:49 UTC (01 20:16:36 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-O3 |
timestamp |
2025-07-03 23:57:21 UTC (01 22:06:04 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-static_O3 |
timestamp |
2025-07-03 23:48:48 UTC (01 22:14:37 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14-ndebug_O3 |
timestamp |
2025-07-03 23:46:20 UTC (01 22:17:05 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_14 |
timestamp |
2025-07-03 23:44:37 UTC (01 22:18:48 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-O3 |
timestamp |
2025-07-03 19:56:47 UTC (02 02:06:38 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
timestamp |
2025-07-03 19:56:32 UTC (02 02:06:53 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++ |
timestamp |
2025-07-03 19:55:55 UTC (02 02:07:30 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18 |
timestamp |
2025-07-03 19:55:04 UTC (02 02:08:21 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18-O3 |
timestamp |
2025-07-03 19:55:03 UTC (02 02:08:21 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_18-static_O3 |
timestamp |
2025-07-03 19:53:31 UTC (02 02:09:54 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64-static_O2 |
timestamp |
2025-07-03 16:18:01 UTC (02 05:45:24 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64-O2 |
timestamp |
2025-07-03 16:14:45 UTC (02 05:48:39 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-gcc_13 |
timestamp |
2025-07-03 13:24:20 UTC (02 08:39:05 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_17_libc++ |
timestamp |
2025-07-03 13:19:30 UTC (02 08:43:55 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
aarch64-linux-gnu |
tgt config |
linux_debian_12-clang_17 |
timestamp |
2025-07-03 13:19:18 UTC (02 08:44:06 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-w64-mingw32 |
tgt config |
windows_10-gcc_13.2_mingw_w64 |
timestamp |
2025-07-03 09:59:21 UTC (02 12:04:04 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10-O2 |
timestamp |
2025-07-03 09:59:17 UTC (02 12:04:08 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10-static_O2 |
timestamp |
2025-07-03 09:58:16 UTC (02 12:05:08 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_12-bindist |
timestamp |
2025-07-03 09:55:19 UTC (02 12:08:06 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_18_llvm_msvc_17.10 |
timestamp |
2025-07-03 09:49:42 UTC (02 12:13:42 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8-static_O2 |
timestamp |
2025-07-03 09:48:39 UTC (02 12:14:46 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8-O2 |
timestamp |
2025-07-03 09:48:10 UTC (02 12:15:15 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-msvc_17.8 |
timestamp |
2025-07-03 09:45:26 UTC (02 12:17:58 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-microsoft-win32-msvc14.3 |
tgt config |
windows_10-clang_17_msvc_msvc_17.10 |
timestamp |
2025-07-03 09:45:20 UTC (02 12:18:05 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18-static_O3 |
timestamp |
2025-07-03 09:19:21 UTC (02 12:44:04 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18-O3 |
timestamp |
2025-07-03 09:18:45 UTC (02 12:44:39 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd14.1 |
tgt config |
freebsd_14-clang_18 |
timestamp |
2025-07-03 09:18:38 UTC (02 12:44:47 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-freebsd13.3 |
tgt config |
freebsd_13-clang_17 |
timestamp |
2025-07-03 09:14:18 UTC (02 12:49:07 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_ubuntu_24.04-gcc_13-bindist |
timestamp |
2025-07-03 09:13:29 UTC (02 12:49:55 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_17_libc++ |
timestamp |
2025-07-03 08:59:06 UTC (02 13:04:19 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_17 |
timestamp |
2025-07-03 08:55:21 UTC (02 13:08:03 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-gcc_13.1 |
timestamp |
2025-07-03 08:52:01 UTC (02 13:11:24 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin22.5.0 |
tgt config |
macos_13-clang_15.0 |
timestamp |
2025-06-22 08:20:32 UTC (13 13:42:53 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-static_O3 |
timestamp |
2025-06-20 14:20:21 UTC (15 07:43:04 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++ |
timestamp |
2025-06-20 14:19:31 UTC (15 07:43:54 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18_libc++-O3 |
timestamp |
2025-06-20 14:18:49 UTC (15 07:44:36 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18-static_O3 |
timestamp |
2025-06-20 14:18:02 UTC (15 07:45:23 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18-O3 |
timestamp |
2025-06-20 14:16:12 UTC (15 07:47:13 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_debian_12-clang_18 |
timestamp |
2025-06-20 14:15:30 UTC (15 07:47:55 days ago) |
result |
success | log | rebuild |
toolchain |
public-0.17.0 |
target |
x86_64-linux-gnu |
tgt config |
linux_fedora_39-gcc_13-bindist |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0 |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0-O3 |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-clang_15.0-static_O3 |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew-O3 |
result |
unbuilt |
toolchain |
public-0.17.0 |
target |
x86_64-apple-darwin23.5.0 |
tgt config |
macos_14-gcc_14_homebrew-static_O3 |
result |
unbuilt |
Changes
Change Log
Full Changelog
v2.4.9 (2022-06-18)
Full Changelog
Closed issues:
- Visual Studio's Test Explorer and Resharper C++'s Unit Test Explorer don't see Doctest's tests #661 (KulaGGin)
- How to get detailed information about testcases failing due to thrown exceptions? #660 (NiklasKappel)
- Add clang-tidy integration and fix all warnings #659 (Saalvage)
- Avoid static init problem in insufficient_procs() (MPI) #657 (starintheuniverse)
- Use MPI_Isend in MpiConsoleReporter to avoid deadlock #656 (starintheuniverse)
- Deadlock in MpiConsoleReporter when root rank fails assert #655 (starintheuniverse)
- Cleanup of DOCTEST_DO_BINARY_EXPRESSION_COMPARISON. Fixes #651 #652 (iboB)
- Comparison with implicit cast from non-const value can't be decomposed #651 (iboB)
- Local structured bindings cannot be used in CHECK macros (since 2.4.8) #647 (pragmaxwell)
- Add tests for DOCTEST_CONFIG_USE_STD_HEADERS #643 (Saalvage)
- Stringification amendments #642 (Saalvage)
- Clean up defines a bit; Implement #439 #641 (Saalvage)
- Fix #508 #640 (Saalvage)
- Fix #508 #639 (Saalvage)
- New doctest version gives me an error: reference to local binding '...' declared in enclosing function 'DOCTEST_ANON_FUNC_16' #638 (a4z)
- The tutorial example does not work (linker errors) with clang 10 #637 (sixcy)
- Implementing `DOCTEST_ASSERT_IMPLEMENT_1` as lambda prevents testing structured bindings #636 (ChrisThrasher)
- re-re-remove overly restrictive minimum version of meson #635 (eli-schwartz)
- Fix move-only types failing to decompose correctly #634 (Saalvage)
- Weird compilation error when using CHECK_THROWS/CHECK_THROWS_AS on Visual Studio 2019 with no exceptions #633 (yeputons)
- Error triggered by comparing typeid with new doctest 2.4.8 #632 (JazzSuite)
- Improve Mac PowerPC support #631 (ryandesign)
- issue introduced in 2.4.7 #630 (onqtam)
- Decompose expressions containing the spaceship operator #629 (falbrechtskirchinger)
- added nolint for cert-err58 #628 (serguei-k)
- Fix properties not being passed in doctest_discover_tests #626 (quantumsteve)
- Config no multithreading #625 (Saalvage)
- wasm*-support? #624 (FrozenSource)
- Fix MPI extension to work with no parallel tests #623 (BerengerBerthoul)
- string comparison leads to gotting stuck #622 (laoshaw)
- doctest_discover_tests no longer sets ENVIRONMENT variables for discovered tests. #621 (quantumsteve)
- Add contains option to checks. #620 (MFraters)
- Feature request: CHECK_THROWS_WITH with contains option #619 (MFraters)
- Add alias target for doctest_with_main #617 (jessestricker)
- Allow escaping backslash with backslash in filters (#614) #616 (yeputons)
- Fix operator<< #615 (Saalvage)
- Correct minor typos #613 (utilForever)
- Fix MPI extension to work if launched without mpirun/mpiexec #612 (BerengerBerthoul)
- Fix mpi subcase #611 (BerengerBerthoul)
- compilation error with custom operator== defined in namespace #610 (zvyagin1)
- Regression: Clang-Tidy warnings in 2.4.8 #607 (nlohmann)
- Internal compiler error with GCC 7.5 #606 (foonathan)
- tagging convension has changed? #605 (kloczek)
- Update Doctest in vcpkg to 2.4.8 #604 (gc435)
- Add IsNaN operator! #603 (Saalvage)
- Ignored generated files from CMake, OSX, Xcode, and VS #602 (LeonBrands)
- Move roadmap and wipe it clean #601 (Saalvage)
- removes a duplicate word 'most' in configuration.md #599 (krishnakumarg1984)
- Fix subcase reentry #598 (Saalvage)
- Loop-generated `SUBCASE`s are not run #597 (yeputons)
- Void #596 (Saalvage)
- Add flag that forces custom stringification methods to be provided #595 (Saalvage)
- Fix coverage #594 (Saalvage)
- TEST CODECOV PR BEHAVIOR #593 (Saalvage)
- Ignore CMake and MacOS generated files #592 (LeonBrands)
- Feature request: option to disable fallback "{?}" stringifier #591 (YarikTH)
- Add tests for default stringification result of doctest #590 (YarikTH)
- Feature config ret vals #589 (Saalvage)
- DOCTEST_CONFIG_ASSERT_RETURN_VALUES #588 (Saalvage)
- Support pretty printing of container based on heuristics #587 (YarikTH)
- Refactor stringification #585 (Saalvage)
- Feature: Better NaN #584 (Saalvage)
- Nan check #582 (Saalvage)
- Update roadmap following maintainer change #581 (eyalroz)
- Regression between 2.4.6 and 2.4.7 #571 (YarikTH)
- build failure with gcc-11.2 when using user declared operator<<(ostream, vector) #551 (nlitsme)
- variable maximum is assigned 6206517616395625 instead of the actual return value which is 5.0 #530 (kk723)
- toString can call existing user-defined toString through ADL incorrectly #508 (zeux)
- [Coverity] Concurrent data access violations (MISSING_LOCK) doctest.h: 5838 in doctest::::ConsoleReporter::test_case_start(const doctest::TestCaseData &)() #486 (jiridanek)
- Provide an error message if REQUIRE (or other disabled assertion macros) are used when exceptions are disabled #439 (alexeyr)
- Conflict with templated toString function #420 (TillHeinzel)
- -tc does not work with comma in names #398 (martinus)
- Compile error on MSVC2019 with any macro which involves stringification of std::string (asserts, INFO, etc.) when isn't included #381 (nyanpasu64)
- the dll example doesn't run correctly on Windows with MinGW #375 (GregKon)
- add basic conan recipe #354 (trondhe)
- CHECK_MESSAGE() should accept temporaries #337 (eyalroz)
- stringify of cstring literals doesn't work out of the box with separate test_driver.cpp #329 (teichert)
- warning : function declared 'noreturn' should not return [-Winvalid-noreturn] #307 (Vexthil)
- Test cases containing a comma cannot be run individually #297 (Tradias)
- [bug] Can't compile the tests because of mutex, that is declared in the doctest #242 (BrunaoW)
- The `CHECK` macro conflicts with Boost.Beast (and surely others) #234 (reddwarf69)
- Feature request: check if a `float` or `double` is NaN #105 (iamthad)