CppUnit project page FAQ CppUnit home page

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

TestRunner Class Reference
[Executing test]

Generic test runner. More...

#include <TestRunner.h>

List of all members.

Public Member Functions

 TestRunner ()
 Constructs a TestRunner object.

virtual ~TestRunner ()
 Destructor.

virtual void addTest (Test *test)
 Adds the specified test.

virtual void run (TestResult &controller, const std::string &testPath="")
 Runs a test using the specified controller.


Protected Attributes

WrappingSuitem_suite

Private Member Functions

 TestRunner (const TestRunner &copy)
 Prevents the use of the copy constructor.

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


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 CppUnit::TestRunner 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:
test Test 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:
controller Event manager and controller used for testing
testPath Test path string. See Test::resolveTestPath() for detail.
Exceptions:
std::invalid_argument if 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