diff options
| author | Baptiste Lepilleur <gaiacrtn@free.fr> | 2001-10-06 09:16:31 +0000 |
|---|---|---|
| committer | Baptiste Lepilleur <gaiacrtn@free.fr> | 2001-10-06 09:16:31 +0000 |
| commit | 4c6c7e6474bef34c4bed0d3eb9889012319c938f (patch) | |
| tree | 8c92755d5109834b78ea620a224fd2ef75abeb09 /src/cppunit/TextTestRunner.cpp | |
| parent | fbd454f554f13680fe62b36fb7a5829f6dc0c396 (diff) | |
| download | cppunit-4c6c7e6474bef34c4bed0d3eb9889012319c938f.tar.gz | |
Examples/cppunittest/CppUnitTestMain.
examples/cppunittest/CppUnitTestMain.cpp : application returns
0 is test suite run sucessfuly, 1 otherwise.
* src/cppunit/Exception.cpp : bug fix, operator =() with VC++.
Removed call to std::exception::operator =() which is bugged
on VC++.
* doc/FAQ : added a note explaining why the test
ExceptionTest.testAssignment used to fail.
* NEWS : updated and detailed.
* include/cppunit/TestResult.h :
* src/cppunit/TestResult.cpp : added reset().
* include/cppunit/TextTestRunner.h :
* src/cppunit/TextTestRunner.cpp : Constructor take an optional
TextTestRestult. The TextTestResult remain alive as long as
the runner. Added result() to retreive the result. Printing the
result is now optinal (enabled by default).
Diffstat (limited to 'src/cppunit/TextTestRunner.cpp')
| -rw-r--r-- | src/cppunit/TextTestRunner.cpp | 50 |
1 files changed, 40 insertions, 10 deletions
diff --git a/src/cppunit/TextTestRunner.cpp b/src/cppunit/TextTestRunner.cpp index c00c456..7f2bc37 100644 --- a/src/cppunit/TextTestRunner.cpp +++ b/src/cppunit/TextTestRunner.cpp @@ -6,14 +6,27 @@ namespace CppUnit { -TextTestRunner::TextTestRunner() +/** Constructs a test runner with the specified TestResult. + * + * A TextTestRunner owns a TextTestResult. It can be accessed + * anytime using result(). If you run the test more than once, + * remember to call result()->reset() before each run. + * + * \param result TextTestResult used by the test runner. If none + * is specified then a default TextTestResult is + * instanciated. + */ +TextTestRunner::TextTestRunner( TextTestResult *result ) : + m_result( result == 0 ? new TextTestResult() : + result ), + m_suite( new TestSuite( "All Tests" ) ) { - m_suite = new TestSuite( "All Tests" ); } TextTestRunner::~TextTestRunner() { + delete m_result; delete m_suite; } @@ -35,18 +48,22 @@ TextTestRunner::addTest( Test *test ) * \param testName Name of the test case to run. If an empty is given, then * all added test are run. The name must be the name of * of an added test. - * \param doWait if \c true then the user must press the RETURN key + * \param wait if \c true then the user must press the RETURN key * before the run() method exit. + * \param printResult if \c true (default) then the test result are printed + * on the standard output. * \return \c true is the test was successful, \c false if the test * failed or was not found. */ bool TextTestRunner::run( std::string testName, - bool doWait ) + bool doWait, + bool doPrintResult ) { - bool sucessful = runTestByName( testName ); + runTestByName( testName ); + printResult( doPrintResult ); wait( doWait ); - return sucessful; + return m_result->wasSuccessful(); } @@ -76,6 +93,14 @@ TextTestRunner::wait( bool doWait ) } +void +TextTestRunner::printResult( bool doPrintResult ) +{ + if ( doPrintResult ) + std::cout << *m_result << std::endl; +} + + Test * TextTestRunner::findTestByName( std::string name ) const { @@ -94,10 +119,15 @@ TextTestRunner::findTestByName( std::string name ) const bool TextTestRunner::runTest( Test *test ) { - TextTestResult result; - test->run( &result ); - std::cout << result << std::endl; - return result.wasSuccessful(); + test->run( m_result ); + return m_result->wasSuccessful(); +} + + +TextTestResult * +TextTestRunner::result() +{ + return m_result; } |
