CppUnit project page | FAQ | CppUnit home page |
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>
Classes | |
class | WrappingSuite |
(INTERNAL) Mutating test suite. More... | |
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 ©) | |
Prevents the use of the copy constructor. | |
void | operator= (const TestRunner ©) |
Prevents the use of the copy operator. |
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; }
TestRunner::TestRunner | ( | ) |
Constructs a TestRunner object.
TestRunner::~TestRunner | ( | ) | [virtual] |
Destructor.
TestRunner::TestRunner | ( | const TestRunner & | copy | ) | [private] |
Prevents the use of the copy constructor.
void TestRunner::addTest | ( | Test * | test | ) | [virtual] |
Adds the specified test.
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.
controller | Event manager and controller used for testing |
testPath | Test path string. See Test::resolveTestPath() for detail. |
std::invalid_argument | if no test matching testPath is found. see TestPath::TestPath( Test*, const std::string &) for detail. |
WrappingSuite* TestRunner::m_suite [protected] |
|
hosts this site. |
Send comments to: CppUnit Developers |