Boost.Test > Components

# Components

- The Execution Monitor - a basic exception and error detection and reporting facility for use in both production and test programs. The Execution Monitor calls a user-supplied function and reports all caught runtime exceptions. It is used internally by other Boost Test Library components. It also could be used in some production environment to make controlled calls of functions which might otherwise crash the program.

- The Program Execution Monitor - a simple helper facility to be used to monitor a program execution. The Program Execution Monitor provides the function main() and uses the Execution Monitor to control a program execution. It should be used in production environment to produce uniform error reports. To control programs working in test environment, use the Test Execution Monitor instead.

- The Test Tools - a toolbox for various testing needs. Test Tools are used by test programs working under control of the Test Execution Monitor or the Unit Test Framework.

- The Test Execution Monitor - causes a test program to run in a monitored environment. The Test Execution Monitor provides the main() function to control a simple test program execution and allows to use the Test Tools to implement test logic. It is intended to be used in test environment. To control production code execution use the Program Execution Monitor.

- The Unit Test Framework - a framework that simplifies writing and organizing test cases. The framework supports test cases written as simple free functions or member functions and organizes them into a tree of test suites. The framework allows to use the Test Tools to implement a test cases and provides a facility to manage a log report level and a result report level.

- The minimal testing facility - simple facility designed to provide the functionality presented by the original version of Boost Test. The same as the Test Execution Monitor it causes the test program to run in a monitored environment. In addition it defines several simple test tools that behave similarly to ones defined in Test Tools. Minimal testing facility does not require linking with external components, so could be a component of choice for simple and quick testing needs.