• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KUnitTest

runner.h

Go to the documentation of this file.
00001 
00028 #ifndef KUNITTEST_RUNNER_H
00029 #define KUNITTEST_RUNNER_H
00030 
00031 #include <iostream>
00032 using namespace std;
00033 
00034 #include <QtCore/QObject>
00035 #include <QtCore/QHash>
00036 #include <QtCore/QString>
00037 
00038 #include "kunittest_export.h"
00039 #include "tester.h"
00040 
00041 
00042 namespace KUnitTest
00043 {
00049     #define KUNITTEST_SUITE(suite)\
00050     static const QString s_kunittest_suite  = suite;
00051 
00061     #define KUNITTEST_REGISTER_TESTER( tester )\
00062     static TesterAutoregister tester##Autoregister( QString(s_kunittest_suite + QString("::") + QString::fromLocal8Bit(#tester)).local8Bit() , new tester ())
00063 
00064     #define KUNITTEST_REGISTER_NAMEDTESTER( name, tester )\
00065     static TesterAutoregister tester##Autoregister( QString(s_kunittest_suite + QString("::") + QString::fromLocal8Bit(name)).local8Bit() , new tester ())
00066 
00068     typedef QHash<QByteArray, Tester*> Registry;
00069 
00087     class KUNITTEST_EXPORT Runner : public QObject
00088     {
00089         Q_OBJECT
00090 
00091     public:
00096         static void registerTester(const char *name, Tester *test);
00097 
00100         Registry &registry();
00101 
00104         static Runner *self();
00105 
00108         int numberOfTestCases();
00109 
00114         static void loadModules(const QString &folder, const QString &query);
00115 
00122         static void setDebugCapturingEnabled(bool enabled);
00123             
00124     private:
00125         Registry             m_registry;
00126         static Runner       *s_self;
00127         static bool          s_debugCapturingEnabled;
00128     
00129     protected:
00130         Runner();
00131 
00132     public:
00134         int numberOfTests() const;
00135 
00137         int numberOfPassedTests() const;
00138 
00140         int numberOfFailedTests() const;
00141 
00143         int numberOfExpectedFailures() const;
00144 
00146         int numberOfSkippedTests() const;
00147 
00148     public Q_SLOTS:
00152         int runTests();
00153 
00159         void runTest(const char *name);
00160 
00164         void runMatchingTests(const QString &prefix);
00165 
00168         void reset();
00169 
00170     Q_SIGNALS:
00175         void finished(const char *name, Tester *test);
00176         void invoke();
00177 
00178     private:
00179         void registerTests();
00180 
00181     private:
00182         int globalSteps;
00183         int globalTests;
00184         int globalPasses;
00185         int globalFails;
00186         int globalXFails;
00187         int globalXPasses;
00188         int globalSkipped;
00189     };
00190 
00194     class TesterAutoregister
00195     {
00196     public:
00200         TesterAutoregister(const char *name, Tester *test)
00201         {
00202             if ( test->objectName().isNull())
00203                 test->setObjectName(QLatin1String(name));
00204             Runner::registerTester(name, test);
00205         }
00206     };
00207 
00208 }
00209 
00210 #endif

KUnitTest

Skip menu "KUnitTest"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.7
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal