summaryrefslogtreecommitdiff
path: root/src/cppunit/TextTestRunner.cpp
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-06 09:16:31 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-06 09:16:31 +0000
commit4c6c7e6474bef34c4bed0d3eb9889012319c938f (patch)
tree8c92755d5109834b78ea620a224fd2ef75abeb09 /src/cppunit/TextTestRunner.cpp
parentfbd454f554f13680fe62b36fb7a5829f6dc0c396 (diff)
downloadcppunit-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.cpp50
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;
}