micro-test-plus 3.2.2
µTest++ Testing Framework
Loading...
Searching...
No Matches
micro_os_plus::micro_test_plus::test_runner Class Reference

The test runner for the µTest++ framework. More...

#include <micro-os-plus/micro-test-plus.h>

Public Member Functions

 test_runner ()
 Default constructor for the test_runner class.
 test_runner (const test_runner &)=delete
 Deleted copy constructor to prevent copying.
 test_runner (test_runner &&)=delete
 Deleted move constructor to prevent moving.
 ~test_runner ()=default
 Destructor for the test_runner class.
void abort (void)
 Aborts test execution immediately.
int exit_code (void)
 Returns 0 if all tests were successful, 1 otherwise.
void initialize (int argc, char *argv[], const char *name)
 Initialises the test runner with command-line arguments and an optional suite name.
constexpr const char * name (void)
 Retrieves the name of the default test suite.
test_runneroperator= (const test_runner &)=delete
 Deleted copy assignment operator to prevent copying.
test_runneroperator= (test_runner &&)=delete
 Deleted move assignment operator to prevent moving.
void register_test_suite (test_suite_base *suite)
 Registers a test suite with the runner.

Protected Attributes

int argc_ = 0
 Stores the argument count passed to the test runner.
char ** argv_ = nullptr
 Stores the argument vector passed to the test runner.
const char * default_suite_name_ = "Test"
 The name of the default test suite.
test_suite_basedefault_test_suite_
 Pointer to the default test suite which groups the main tests.
std::vector< test_suite_base * > * suites_
 Pointer to the array of registered test suites.

Detailed Description

The test_runner class is responsible for managing the registration and execution of test suites within the µTest++ framework. It maintains a collection of test suites, each of which registers itself automatically upon construction, enabling seamless integration and execution of tests across different components and folders of a project.

The test runner provides methods for initialising the test environment, registering test suites, retrieving the runner's name, and determining the overall test result via an exit code. It also offers an abort mechanism for terminating test execution in exceptional circumstances.

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 96 of file test-runner.h.

Constructor & Destructor Documentation

◆ test_runner() [1/3]

micro_os_plus::micro_test_plus::test_runner::test_runner ( )

The rule of five is enforced to prevent accidental copying or moving.

The constructor initialises a new instance of the test_runner class, preparing the test runner for managing test suites and cases within the µTest++ framework. If tracing is enabled, it outputs the function signature for diagnostic purposes. This setup ensures the test runner is ready to coordinate the registration, execution, and reporting of tests across all test cases and folders.

Definition at line 72 of file test-runner.cpp.

◆ test_runner() [2/3]

micro_os_plus::micro_test_plus::test_runner::test_runner ( const test_runner & )
delete

◆ test_runner() [3/3]

micro_os_plus::micro_test_plus::test_runner::test_runner ( test_runner && )
delete

◆ ~test_runner()

micro_os_plus::micro_test_plus::test_runner::~test_runner ( )
default

Member Function Documentation

◆ abort()

void micro_os_plus::micro_test_plus::test_runner::abort ( void )
Parameters
None.
Returns
Nothing.

This method immediately terminates the process by invoking the standard C library abort() function. It is used to halt test execution in critical failure scenarios, ensuring that no further tests are run and that the cause of the failure can be promptly investigated. This approach provides a robust mechanism for enforcing strict test outcomes across all test cases and folders.

Definition at line 255 of file test-runner.cpp.

◆ exit_code()

int micro_os_plus::micro_test_plus::test_runner::exit_code ( void )
Parameters
None.
Returns
Integer exit code representing the overall test result.

Definition at line 190 of file test-runner.cpp.

◆ initialize()

void micro_os_plus::micro_test_plus::test_runner::initialize ( int argc,
char * argv[],
const char * name )
Parameters
argcThe argument count from main().
argvThe argument vector from main().
nameThe name of the default test suite.
Returns
Nothing.

This method initialises the test runner by capturing the command-line arguments and the default test suite name, configuring the framework for subsequent test execution. It parses the arguments to determine the desired verbosity level (normal, verbose, quiet, or silent) and applies this setting to the test reporter. The method also outputs build and environment information when appropriate, aiding diagnostics and transparency. Finally, it creates and registers the default test suite, preparing the framework to manage and execute all test cases and suites across the project’s folders.

Definition at line 96 of file test-runner.cpp.

◆ name()

const char * micro_os_plus::micro_test_plus::test_runner::name ( void )
inlineconstexpr
Parameters
None.
Returns
The name of the default test suite as a constant character pointer.

Definition at line 178 of file test-runner.h.

◆ operator=() [1/2]

test_runner & micro_os_plus::micro_test_plus::test_runner::operator= ( const test_runner & )
delete

◆ operator=() [2/2]

test_runner & micro_os_plus::micro_test_plus::test_runner::operator= ( test_runner && )
delete

◆ register_test_suite()

void micro_os_plus::micro_test_plus::test_runner::register_test_suite ( test_suite_base * suite)
Parameters
suitePointer to the test suite to register.
Returns
Nothing.

This method registers a new test suite with the test runner. If the internal collection of test suites has not yet been created, it is initialised at this point. The provided test suite is then added to the collection, enabling the framework to manage and execute multiple test suites across different files and folders within the project.

Called by test suite constructors to register themselves with the runner, enabling automatic management and execution.

Definition at line 232 of file test-runner.cpp.

Member Data Documentation

◆ argc_

int micro_os_plus::micro_test_plus::test_runner::argc_ = 0
protected

Definition at line 198 of file test-runner.h.

◆ argv_

char** micro_os_plus::micro_test_plus::test_runner::argv_ = nullptr
protected

Definition at line 203 of file test-runner.h.

◆ default_suite_name_

const char* micro_os_plus::micro_test_plus::test_runner::default_suite_name_ = "Test"
protected

Definition at line 208 of file test-runner.h.

◆ default_test_suite_

test_suite_base* micro_os_plus::micro_test_plus::test_runner::default_test_suite_
protected

Definition at line 213 of file test-runner.h.

◆ suites_

std::vector<test_suite_base*>* micro_os_plus::micro_test_plus::test_runner::suites_
protected

Statically initialised to zero as BSS, such that test suites defined as static objects in different compilation units can be automatically executed.

Definition at line 223 of file test-runner.h.


The documentation for this class was generated from the following files: