Boost.Test

What Boost.Test is
Boost.Test is a C++ testing library for checking program behavior, from simple tests to full unit testing and execution monitoring. It supports C++11, C++14, and C++17, and its `BOOST_TEST` macro can compare floating-point values, collections, and strings. Tests can register themselves and be grouped into suites, with fixtures, labels, decorators, and dependencies to organize how they run. The documentation also covers data-driven and template test cases. Decorations can attach descriptions, groups, or dependencies to cases and suites. When an assertion fails, assertion context and configurable logging can help explain the failure. The framework can produce XML and JUNIT logs for use with other tools, including continuous integration tools. Developers can use it as a header-only library or link a static or shared library. Boost.Test is free under the Boost Software License, Version 1.0, and is listed for Linux and Windows. The Boost 1.92.0 release page offers Unix source archives and Windows source and binary downloads. The library page links to documentation, Boost Slack discussion, and GitHub issues, and lists dependencies including Algorithm, Assert, Bind, Config, Core, Exception, and Type Traits. Its assertion macros have no synchronization to prevent races when called from multiple threads.
Who it suits
Boost.Test suits C++ developers who need to test programs, organize unit-test suites, or monitor program execution. It offers several test organization and library usage options, with XML and JUNIT output for tooling workflows.
What it does well
- Free under the Boost Software License, Version 1.0.
- Supports C++11, C++14, and C++17.
- Assertions cover floating-point values, collections, and strings.
- Supports data-driven and template test cases.
- Offers header-only, static, and shared-library usage.
- Produces XML and JUNIT logs.
What to know first
- Assertion macros lack synchronization against races from multiple threads.
- Listed platforms are Linux and Windows.
- The library page lists several Boost dependencies.
Limits
The library is free. Its assertion macros do not provide synchronization to prevent races when multiple threads call them.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Boost.Test | Boost C++ unit testing library · Boost Software License, Version 1.0 | Free |
As boost.org lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the Boost.Test library page.
- Choose a header-only, static-library, or shared-library usage variant.
- Get a source archive or Windows binary from the Boost 1.92.0 release page.
- Consult the documentation for test cases, suites, and assertions.
- Use the linked Boost Slack discussion or GitHub issues for support.
Verdict
Choose Boost.Test for C++ testing when you want flexible test organization, multiple linking options, and XML or JUNIT logs. Its main limitation is that assertion macros have no synchronization against concurrent calls from multiple threads.
Questions
How much does Boost.Test cost?
It is free under the Boost Software License, Version 1.0.
Which C++ standards does it support?
Boost.Test supports C++11, C++14, and C++17.
Which platforms are listed?
Linux and Windows.
Can it produce output for other tools?
Yes. It supports XML and JUNIT log formats, including for continuous integration tools.
Can I use it without a separately linked library?
Yes. Boost.Test offers a header-only usage variant, as well as static and shared libraries.
Where can I find downloads and support?
The Boost 1.92.0 release page offers Unix source archives and Windows source and binary downloads. The library page links to documentation, Boost Slack discussion, and GitHub issues.
Facts from Boost.Test's own pages
- Assertions
- Its BOOST_TEST assertion macro handles floating-point values, collections, and strings with appropriate comparison methods. · boost.org, 9 Oct 2026
- Audience
- The library is intended for C++ developers who need simple program testing, unit testing, or program execution monitoring. · boost.org, 4 Oct 2026
- Data-driven tests
- The library supports extensible dataset tests. · boost.org, 9 Oct 2026
- Dependencies
- The library page lists Boost dependencies including Algorithm, Assert, Bind, Config, Core, Exception, and Type Traits. · boost.org, 4 Oct 2026
- Diagnostics
- The library supports assertion context for failure diagnostics and configurable logging. · boost.org, 4 Oct 2026
- Download
- The Boost 1.92.0 release page offers Unix source archives and Windows source and binary downloads. · boost.org, 4 Oct 2026
- Downloads
- The Boost release page lists Unix source archives and Windows source archives and binaries. · boost.org, 9 Oct 2026
- Integration options
- The framework offers header-only, static-library, and shared-library usage variants. · boost.org, 9 Oct 2026
- Language
- Boost.Test is a C++11/14/17 unit testing library. · boost.org, 9 Oct 2026
- License
- Boost.Test is distributed under the Boost Software License, Version 1.0. · boost.org, 9 Oct 2026
- Output and automation
- It supports extensible logging and XML and JUnit output formats for use with third-party tools, including continuous integration. · boost.org, 9 Oct 2026
- Output formats
- It provides XML and JUNIT log formats for use with third-party tools, including continuous integration tools. · boost.org, 4 Oct 2026
- Purpose
- Boost.Test supports simple program testing, full unit testing, and program execution monitoring. · boost.org, 9 Oct 2026
- Support
- The FAQ directs users to the Boost Users mailing list and the project's GitHub issues for bug reports and feature requests. · boost.org, 9 Oct 2026
- Test metadata
- Decorations can add descriptions, groups or labels, and dependencies to test cases and suites. · boost.org, 9 Oct 2026
- Test organization
- It supports self-registering test cases, test suites, and fixtures applied to cases, suites, or globally. · boost.org, 9 Oct 2026
- Thread safety limitation
- Boost.Test currently has no synchronization mechanisms to prevent races when multiple threads call assertion macros. · boost.org, 9 Oct 2026
- Usage variants
- Boost.Test can be used as a shared library, static library, or header-only library. · boost.org, 4 Oct 2026
Where Boost.Test stands on Freedom251
- Unit Testing#2 of 32
- Unit Testing Frameworks#4 of 32
