Compatibility notices
According to SemVer rules:
Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API.
The changes of each major and minor release that affect existing code are documented in reverse chronological order. The details are in the respective release notes.
v6.0 (2026-11-09)
Version 6.0 adds parametrised tests (test_each()), new function comparators
(all_of(), any_of(), negate(), and approx()), the extension
namespace for the comparators of the applications, and the --filter,
--colour, --list-tests, and --help options. The overloaded operators, the
literals, and the type wrappers are deprecated in favour of the function
comparators, and available only when
MICRO_OS_PLUS_MICRO_TEST_PLUS_DEPRECATED_ENABLED is defined; several
changes break the compilation of existing code or change its behaviour, for
example the top suite is now added with add_top_suite(), and a failed
require() stops only its test case. The details, with the old and new
names, are in the
v6.0.0 release post.
v5.0 (2026-07-14)
The C++ API is unchanged; the changes affect only the configuration and the
build integration. The library must now be enabled by defining
MICRO_OS_PLUS_MICRO_TEST_PLUS_ENABLED, the configuration file is now
micro-os-plus/micro-test-plus-defines.h, the configuration macros were
renamed with the _ENABLED suffix (the old names are silently ignored), and
the CMake OBJECT library was renamed to
micro-os-plus::micro-test-plus-objects-library. The old and new names are
listed in the
v5.0.0 release post.
v4.1 (2026-05-12)
Passing the top suite name via the runner constructor is deprecated in
favour of passing it via the initialise() function. The name is
optional; the default is the program name, derived from argv[0].
v4.0 (2026-04-29)
Major rework introducing explicit objects for test suites and test cases
(subtests), using a ts.test() and t.expect() mechanism inspired by
node-tap. The static objects of the framework itself
(the runner and the reporter) are no longer used; the applications create the
runner, and the static suites remain objects of the application, which register
themselves with a runner. The TAP reporter is now the default.
v3.3 (2026-03-22)
Support for multiple reporters was added, including a new TAP-compliant reporter.
v3.0 (2022-04-03)
Significant revision introducing a set of comparators, exception handling, function templates for test cases, and class templates for test suites. Heavily influenced by Boost UT.
The run_test_case(func, name) function was deprecated in favour of
run_test_case(name, func), in preparation for the adoption of variadic
templates.
v2.0 (2021-03-01)
The C++ namespace was changed from os to micro_os_plus.
v1.1 (2021-02-05)
The initial codebase, noted for its simplicity and inspired by node-tap, was extracted from the µOS++ monorepo.