CppUnit project page FAQ CppUnit home page

Classes | Public Member Functions | Protected Attributes | Private Member Functions | List of all members
TestRunner Class Reference

Generic test runner.The TestRunner assumes ownership of all added tests: you can not add test or suite that are local variable since they can't be deleted. More...

#include <TestRunner.h>

Collaboration diagram for TestRunner:
Collaboration graph
[legend]

Classes

class  WrappingSuite
 (INTERNAL) Mutating test suite. More...
 

Public Member Functions

 TestRunner ()
 Constructs a TestRunner object. More...
 
virtual ~TestRunner ()
 Destructor. More...
 
virtual void addTest (Test *test)
 Adds the specified test. More...
 
virtual void run (TestResult &controller, const std::string &testPath="")
 Runs a test using the specified controller. More...
 

Protected Attributes

WrappingSuitem_suite
 

Private Member Functions

 TestRunner (const TestRunner &copy)
 Prevents the use of the copy constructor. More...
 
void operator= (const TestRunner &copy)
 Prevents the use of the copy operator. More...
 

Detailed Description

Generic test runner.

The TestRunner assumes ownership of all added tests: you can not add test or suite that are local variable since they can't be deleted.

Example of usage:

* #include <cppunit/extensions/TestFactoryRegistry.h>
* #include <cppunit/CompilerOutputter.h>
* #include <cppunit/TestResult.h>
* #include <cppunit/TestResultCollector.h>
* #include <cppunit/TestRunner.h>
* #include <cppunit/TextTestProgressListener.h>
*
*
* int
* main( int argc, char* argv[] )
* {
* std::string testPath = (argc > 1) ? std::string(argv[1]) : "";
*
* // Create the event manager and test controller
* CppUnit::TestResult controller;
*
* // Add a listener that colllects test result
* CppUnit::TestResultCollector result;
* controller.addListener( &result );
*
* // Add a listener that print dots as test run.
* CppUnit::TextTestProgressListener progress;
* controller.addListener( &progress );
*
* // Add the top suite to the test runner
* runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
* try
* {
* std::cout << "Running " << testPath;
* runner.run( controller, testPath );
*
* std::cerr << std::endl;
*
* // Print test in a compiler compatible format.
* CppUnit::CompilerOutputter outputter( &result, std::cerr );
* outputter.write();
* }
* catch ( std::invalid_argument &e ) // Test path not resolved
* {
* std::cerr << std::endl
* << "ERROR: " << e.what()
* << std::endl;
* return 0;
* }
*
* return result.wasSuccessful() ? 0 : 1;
* }
*

Constructor & Destructor Documentation

TestRunner::TestRunner ( )

Constructs a TestRunner object.

TestRunner::~TestRunner ( )
virtual

Destructor.

TestRunner::TestRunner ( const TestRunner copy)
private

Prevents the use of the copy constructor.

Member Function Documentation

void TestRunner::addTest ( Test test)
virtual

Adds the specified test.

Parameters
testTest to add. The TestRunner takes ownership of the test.
void TestRunner::operator= ( const TestRunner copy)
private

Prevents the use of the copy operator.

void TestRunner::run ( TestResult controller,
const std::string &  testPath = "" 
)
virtual

Runs a test using the specified controller.

Parameters
controllerEvent manager and controller used for testing
testPathTest path string. See Test::resolveTestPath() for detail.
Exceptions
std::invalid_argumentif no test matching testPath is found. see TestPath::TestPath( Test*, const std::string &) for detail.

Member Data Documentation

WrappingSuite* TestRunner::m_suite
protected

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

SourceForge Logo hosts this site. Send comments to:
CppUnit Developers