summaryrefslogtreecommitdiff
path: root/include/cppunit
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-05 07:06:28 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2001-10-05 07:06:28 +0000
commit6a1755ef0e36aeb1ac2df0a46e5dafe08a4699ee (patch)
treeee4ef2f3f3b7dcacdbe71fe14bd6bb362a2351ad /include/cppunit
parentc2ac2ac3bcfb30cb8ae4e95e531f1b630b8dd80e (diff)
downloadcppunit-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.h1
-rw-r--r--include/cppunit/TestResult.h11
-rw-r--r--include/cppunit/XmlTestResultOutputter.h113
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 &copy );
+
+ /// Prevents the use of the copy operator.
+ void operator =( const XmlTestResultOutputter &copy );
+
+private:
+};
+
+
+} // namespace CppUnit
+
+#endif // CPPUNIT_XMLTESTRESULTOUTPUTTER_H