diff options
| author | Baptiste Lepilleur <gaiacrtn@free.fr> | 2001-10-05 07:06:28 +0000 |
|---|---|---|
| committer | Baptiste Lepilleur <gaiacrtn@free.fr> | 2001-10-05 07:06:28 +0000 |
| commit | 6a1755ef0e36aeb1ac2df0a46e5dafe08a4699ee (patch) | |
| tree | ee4ef2f3f3b7dcacdbe71fe14bd6bb362a2351ad /include/cppunit | |
| parent | c2ac2ac3bcfb30cb8ae4e95e531f1b630b8dd80e (diff) | |
| download | cppunit-6a1755ef0e36aeb1ac2df0a46e5dafe08a4699ee.tar.gz | |
NEWS : updated.
NEWS : updated.
* include/cppunit/Exception.h : added include Portability.h.
* include/cppunit/TestResult.* : changed TestFailures to a deque.
added tests().
* examples/cppunittest/CppUnitTest.dsp :
* examples/cppunittest/MakeFile.am :
* examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp : Added
XmlTestResultOutputterTest.*, XmlUniformiser.*, XmlUniformiserTest.*,
UnitTestToolSuite.h, OutputSuite.h.
* examples/msvc6/CppUnitTestApp/CppUnitTestApp.dsp : revised project
folders structure. Added missing NoteEqualExceptionTest.*.
* examples/cppunittest/CppUnitTestSuite.cpp : added 'Output' and
'UnitTestTool' suites.
* src/cppunit/cppunit.dsp: removed estring.h. Revised project folders
structure. Removed TestRegistry.*. Added TestSetUp.h,
XmlTestResultOutputter.*.
* src/cppunit/MakeFile.am: added XmlTestResultOutputter.*.
* src/testrunner/TestRunnerDlg.cpp: removed disabled code.
Diffstat (limited to 'include/cppunit')
| -rw-r--r-- | include/cppunit/Exception.h | 1 | ||||
| -rw-r--r-- | include/cppunit/TestResult.h | 11 | ||||
| -rw-r--r-- | include/cppunit/XmlTestResultOutputter.h | 113 |
3 files changed, 121 insertions, 4 deletions
diff --git a/include/cppunit/Exception.h b/include/cppunit/Exception.h index 39fbc02..8be5781 100644 --- a/include/cppunit/Exception.h +++ b/include/cppunit/Exception.h @@ -1,6 +1,7 @@ #ifndef CPPUNIT_EXCEPTION_H #define CPPUNIT_EXCEPTION_H +#include <cppunit/Portability.h> #include <exception> #include <string> diff --git a/include/cppunit/TestResult.h b/include/cppunit/TestResult.h index 0a7ce58..dfb3889 100644 --- a/include/cppunit/TestResult.h +++ b/include/cppunit/TestResult.h @@ -1,8 +1,8 @@ #ifndef CPPUNIT_TESTRESULT_H #define CPPUNIT_TESTRESULT_H -#include <vector> #include <cppunit/TestFailure.h> +#include <deque> namespace CppUnit { @@ -34,7 +34,8 @@ class TestListener; class TestResult { public: - typedef std::vector<TestFailure *> TestFailures; + typedef std::deque<TestFailure *> TestFailures; + typedef std::deque<Test *> Tests; class SynchronizationObject { @@ -63,6 +64,7 @@ class TestResult virtual void stop(); virtual const TestFailures& failures() const; + virtual const Tests &tests() const; virtual void addListener( TestListener *listener ); virtual void removeListener( TestListener *listener ); @@ -89,9 +91,10 @@ class TestResult virtual void setSynchronizationObject( SynchronizationObject *syncObject ); virtual void addFailure( TestFailure *failure ); + Tests m_tests; TestFailures m_failures; - std::vector<TestListener *> m_listeners; - int m_runTests; + typedef std::deque<TestListener *> TestListeners; + TestListeners m_listeners; int m_testErrors; bool m_stop; SynchronizationObject *m_syncObject; diff --git a/include/cppunit/XmlTestResultOutputter.h b/include/cppunit/XmlTestResultOutputter.h new file mode 100644 index 0000000..98952a4 --- /dev/null +++ b/include/cppunit/XmlTestResultOutputter.h @@ -0,0 +1,113 @@ +#ifndef CPPUNIT_XMLTESTRESULTOUTPUTTER_H +#define CPPUNIT_XMLTESTRESULTOUTPUTTER_H + +#include <cppunit/Portability.h> +#include <deque> +#include <iostream> +#include <map> +#include <utility> + + +namespace CppUnit +{ + +class Test; +class TestFailure; +class TestResult; + + +/*! This class ouputs a TestResult in XML format. + */ +class XmlTestResultOutputter +{ +public: + /*! Constructs a XmlTestResultOutputter object. + */ + XmlTestResultOutputter(); + + /// Destructor. + virtual ~XmlTestResultOutputter(); + + /*! Write the specified result as an XML document in the specified stream. + * + * Refer to examples/cppunittest/XmlTestResultOutputterTest.cpp for example + * of use and XML document structure. + * + * \param result TestResult to write. + * \param stream Output stream the result are wrote into. + */ + void write( TestResult *result, + std::ostream &stream ); + + /*! This class represents an XML Element. + * \warning This class will probably be replaced with an abstract + * builder in future version. + */ + class Node + { + public: + Node( std::string elementName, + std::string content ="" ); + Node( std::string elementName, + int numericContent ); + virtual ~Node(); + + void addAttribute( std::string attributeName, + std::string value ); + void addAttribute( std::string attributeName, + int numericValue ); + void addNode( Node *node ); + + std::string toString() const; + + private: + typedef std::pair<std::string,std::string> Attribute; + + std::string attributesAsString() const; + std::string escape( std::string value ) const; + static std::string asString( int value ); + + private: + std::string m_name; + std::string m_content; + typedef std::deque<Attribute> Attributes; + Attributes m_attributes; + typedef std::deque<Node *> Nodes; + Nodes m_nodes; + }; + + + virtual void writeProlog( std::ostream &stream ); + virtual void writeTestsResult( TestResult *result, + std::ostream &stream ); + + typedef std::map<Test *,TestFailure*> FailedTests; + virtual Node *makeRootNode( TestResult *result ); + virtual Node *makeFailedTestsNode( FailedTests &failedTests, + TestResult *result ); + virtual Node *makeSucessfulTestsNode( FailedTests &failedTests, + TestResult *result ); + virtual Node *makeStatisticsNode( TestResult *result ); + virtual Node *makeFailedTestNode( Test *test, + TestFailure *failure, + int testNumber ); + virtual Node *makeSucessfulTestNode( Test *test, + int testNumber ); +protected: + void fillFailedTestsMap( TestResult *result, + FailedTests &failedTests ); + +private: + /// Prevents the use of the copy constructor. + XmlTestResultOutputter( const XmlTestResultOutputter © ); + + /// Prevents the use of the copy operator. + void operator =( const XmlTestResultOutputter © ); + +private: +}; + + +} // namespace CppUnit + +#endif // CPPUNIT_XMLTESTRESULTOUTPUTTER_H |
