|
micro-test-plus 3.3.1
µTest++ Testing Framework
|
Represents a named group of test cases that self-register to the runner. More...
#include <micro-os-plus/micro-test-plus.h>
Public Member Functions | |
| template<typename Callable_T, typename... Args_T> | |
| test_suite (const char *name, Callable_T &&callable, Args_T &&... arguments) | |
| Class template constructor for test_suite. | |
| test_suite (const test_suite &)=delete | |
| Deleted copy constructor to prevent copying. | |
| test_suite (test_suite &&)=delete | |
| Deleted move constructor to prevent moving. | |
| virtual | ~test_suite () override |
| Virtual destructor for the test_suite class. | |
| void | begin_test_case (const char *name) |
| Marks the beginning of a named test case. | |
| void | begin_test_suite (void) |
| Begins the execution of the test suite. | |
| void | end_test_case (void) |
| Marks the end of a test case. | |
| void | end_test_suite (void) |
| Marks the end of the test suite. | |
| constexpr size_t | failed_checks (void) |
| Gets the number of test conditions that failed. | |
| void | increment_failed (void) |
| Increments the count of failed test conditions. | |
| void | increment_successful (void) |
| Increments the count of passed test conditions. | |
| constexpr const char * | name (void) |
| Gets the suite name. | |
| test_suite & | operator= (const test_suite &)=delete |
| Deleted copy assignment operator to prevent copying. | |
| test_suite & | operator= (test_suite &&)=delete |
| Deleted move assignment operator to prevent moving. | |
| virtual void | run (void) override |
| Runs the sequence of test cases in the suite by invoking the stored callable. | |
| constexpr size_t | successful_checks (void) |
| Gets the number of conditions that passed. | |
| constexpr size_t | test_cases_count (void) |
| Gets the number of test cases. | |
| constexpr bool | unused (void) |
| Checks if the test suite was not used. | |
| constexpr bool | was_successful (void) |
| Gets the test suite result. | |
Public Attributes | |
| struct { | |
| size_t failed_checks = 0 | |
| Number of failed checks in the current test case. More... | |
| size_t index = 0 | |
| size_t successful_checks = 0 | |
| Number of successful checks in the current test case. More... | |
| } | current_test_case |
| Structure holding the current test case's check counters. | |
| size_t | index = 1 |
| The test suite index, counting from 1. | |
| bool | process_deferred_begin = true |
| Indicates whether to process deferred begin for test cases. | |
Protected Attributes | |
| std::function< void(void)> | callable_ |
| Callable object representing the test suite's execution logic. | |
| size_t | failed_checks_ = 0 |
| Count of test conditions that failed. | |
| const char * | name_ |
| The test suite name. | |
| size_t | successful_checks_ = 0 |
| Count of test conditions that passed. | |
| const char * | test_case_name_ |
| The current test case name. | |
| size_t | test_cases_count_ = 0 |
| Count of test cases in the test suite. | |
The test_suite class extends test_suite_base and enables the registration and execution of callable objects (such as lambdas or function pointers) as test suites. Upon construction, each test suite automatically registers itself with the test runner, facilitating automated test discovery and execution across different components and folders of a project.
This class template provides a flexible mechanism for grouping related test cases and managing their execution within the µTest++ framework. It ensures that test suites are non-copyable and non-movable, maintaining unique ownership and consistent state.
All members and methods are defined within the micro_os_plus::micro_test_plus namespace, ensuring clear separation from user code and minimising the risk of naming conflicts.
Definition at line 407 of file test-suite.h.
| micro_os_plus::micro_test_plus::test_suite::test_suite | ( | const char * | name, |
| Callable_T && | callable, | ||
| Args_T &&... | arguments ) |
| Callable_T | The type of a callable object. |
| Args_T | The types of the callable arguments. |
| [in] | name | The test case name or description, used in reports. |
| [in] | callable | A generic callable object, usually a lambda, invoked to perform the test. |
| [in] | arguments | A possibly empty list of arguments to be passed to the callable. |
The rule of five is enforced to prevent accidental copying or moving.
This constructor initialises a test suite by binding the provided callable and its arguments, and registers the suite with the test runner.
The callable is bound using std::bind, allowing for flexible test suite definitions with arbitrary arguments. Upon construction, the test suite is automatically registered with the global runner for execution.
Definition at line 88 of file test-suite-inlines.h.
References micro_os_plus::micro_test_plus::test_suite_base::test_suite_base(), callable_, micro_os_plus::micro_test_plus::test_suite_base::name(), and micro_os_plus::micro_test_plus::runner.
Referenced by test_suite(), test_suite(), operator=(), and operator=().
|
delete |
References test_suite().
|
delete |
References test_suite().
|
overridevirtual |
The destructor releases any resources associated with the test_suite instance. If tracing is enabled, it outputs the function signature for diagnostic purposes. This ensures that the test suite is properly cleaned up after execution, supporting robust and reliable test management across all files and folders within the µTest++ framework.
Definition at line 294 of file test-suite.cpp.
|
inherited |
| [in] | name | The test case name. |
This method marks the beginning of a test case within the suite. If the start of the suite was deferred, it ensures the suite is properly begun before proceeding. The method sets the current test case name, increments the total number of test cases, resets the current test case statistics, and notifies the test reporter to begin the test case. This approach guarantees that each test case is clearly identified, accurately tracked, and properly reported across all test cases and folders.
Definition at line 177 of file test-suite.cpp.
References begin_test_suite(), current_test_case, name(), process_deferred_begin, micro_os_plus::micro_test_plus::reporter, micro_os_plus::micro_test_plus::runner, test_case_name_, and test_cases_count_.
|
inherited |
This method marks the beginning of a test suite's execution. It resets the deferred begin flag and notifies the test reporter to start the suite, passing the suite's name. This ensures that test suite output is clearly delineated and properly initialised, supporting organised and readable reporting across all test cases and folders.
Definition at line 122 of file test-suite.cpp.
References name_, process_deferred_begin, and micro_os_plus::micro_test_plus::reporter.
Referenced by begin_test_case(), end_test_suite(), and micro_os_plus::micro_test_plus::test_runner::exit_code().
|
inherited |
This method marks the end of a test case within the suite. It notifies the test reporter to conclude the test case, passing the current test case name. This ensures that the results of the test case are accurately finalised and clearly reported, supporting organised and reliable test management across all test cases and folders.
Definition at line 203 of file test-suite.cpp.
References micro_os_plus::micro_test_plus::reporter, and test_case_name_.
|
inherited |
This method marks the end of a test suite's execution. If the suite's start was deferred, it ensures the suite is properly begun before finalising. The method then notifies the test reporter to conclude the suite, passing a reference to the suite instance. This guarantees that all results are accurately summarised and reported, supporting clear and organised test management across all test cases and folders.
Definition at line 147 of file test-suite.cpp.
References begin_test_suite(), process_deferred_begin, micro_os_plus::micro_test_plus::reporter, and micro_os_plus::micro_test_plus::runner.
Referenced by micro_os_plus::micro_test_plus::test_runner::exit_code().
|
inlinenodiscardconstexprinherited |
Definition at line 228 of file test-suite.h.
References failed_checks_.
|
inherited |
This method increments the count of failed checks for the test suite and the current test case. It ensures that each failing assertion is accurately recorded, supporting precise tracking and reporting of test outcomes across all test cases and folders.
Definition at line 230 of file test-suite.cpp.
References current_test_case, and failed_checks_.
|
inherited |
This method increments the count of successful checks for the test suite and the current test case. It ensures that each passing assertion is accurately recorded, supporting precise tracking and reporting of test outcomes across all test cases and folders.
Definition at line 216 of file test-suite.cpp.
References current_test_case, and successful_checks_.
|
inlinenodiscardconstexprinherited |
Definition at line 180 of file test-suite.h.
References name_.
Referenced by micro_os_plus::micro_test_plus::test_suite::test_suite(), test_suite_base(), begin_test_case(), micro_os_plus::micro_test_plus::test_reporter_basic::end_test_suite(), micro_os_plus::micro_test_plus::test_reporter_tap::end_test_suite(), and operator=().
|
delete |
References test_suite().
|
delete |
References test_suite().
|
overridevirtual |
This method executes the test suite by invoking the stored callable object associated with the suite. It ensures that all test cases registered within the suite are executed in sequence, supporting comprehensive and structured testing across all files and folders within the µTest++ framework.
Reimplemented from micro_os_plus::micro_test_plus::test_suite_base.
Definition at line 280 of file test-suite.cpp.
References callable_.
Referenced by micro_os_plus::micro_test_plus::test_runner::exit_code().
|
inlinenodiscardconstexprinherited |
Definition at line 215 of file test-suite.h.
References successful_checks_.
|
inlinenodiscardconstexprinherited |
Definition at line 241 of file test-suite.h.
References test_cases_count_.
Referenced by micro_os_plus::micro_test_plus::test_reporter_basic::end_test_suite(), micro_os_plus::micro_test_plus::test_reporter_tap::end_test_suite(), and micro_os_plus::micro_test_plus::test_runner::exit_code().
|
inlinenodiscardconstexprinherited |
Definition at line 305 of file test-suite.h.
References failed_checks_, successful_checks_, and test_cases_count_.
|
inlinenodiscardconstexprinherited |
Definition at line 291 of file test-suite.h.
References failed_checks_, and successful_checks_.
Referenced by micro_os_plus::micro_test_plus::test_runner::exit_code().
|
protected |
Definition at line 474 of file test-suite.h.
Referenced by test_suite(), and run().
| struct { ... } micro_os_plus::micro_test_plus::test_suite_base::current_test_case |
Tracks the number of successful and failed checks for the currently running test case.
Referenced by begin_test_case(), increment_failed(), and increment_successful().
|
inherited |
Definition at line 377 of file test-suite.h.
Referenced by micro_os_plus::micro_test_plus::test_reporter_basic::end_test_suite(), micro_os_plus::micro_test_plus::test_reporter_tap::end_test_suite(), and micro_os_plus::micro_test_plus::test_runner::exit_code().
|
protectedinherited |
Definition at line 330 of file test-suite.h.
Referenced by failed_checks(), increment_failed(), unused(), and was_successful().
|
inherited |
Definition at line 341 of file test-suite.h.
Referenced by micro_os_plus::micro_test_plus::test_reporter_tap::end_test_suite(), and micro_os_plus::micro_test_plus::test_runner::register_test_suite().
|
protectedinherited |
Definition at line 315 of file test-suite.h.
Referenced by test_suite_base(), begin_test_suite(), and name().
|
inherited |
Definition at line 358 of file test-suite.h.
Referenced by begin_test_case(), begin_test_suite(), and end_test_suite().
|
inherited |
Definition at line 372 of file test-suite.h.
Referenced by micro_os_plus::micro_test_plus::test_reporter_basic::end_test_suite(), micro_os_plus::micro_test_plus::test_reporter_tap::end_test_suite(), and micro_os_plus::micro_test_plus::test_runner::exit_code().
|
protectedinherited |
Definition at line 325 of file test-suite.h.
Referenced by increment_successful(), successful_checks(), unused(), and was_successful().
|
protectedinherited |
Definition at line 320 of file test-suite.h.
Referenced by begin_test_case(), and end_test_case().
|
protectedinherited |
Definition at line 335 of file test-suite.h.
Referenced by begin_test_case(), test_cases_count(), and unused().