CppUnit project page FAQ CppUnit home page

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | 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

WrappingSuite * m_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.

Classes

class WrappingSuite
(INTERNAL) Mutating test suite. 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
 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


The documentation for this class was generated from the following files:
SourceForge Logo hosts this site. Send comments to:
CppUnit Developers

AltStyle によって変換されたページ (->オリジナル) /