Add a testing framework

This commit is contained in:
Lukas W
2015-01-12 23:58:34 +01:00
parent a94ccb8515
commit 5641465a3a
7 changed files with 74 additions and 2 deletions

15
tests/CMakeLists.txt Normal file
View File

@@ -0,0 +1,15 @@
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}")
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11")
SET(CMAKE_AUTOMOC ON)
ADD_EXECUTABLE(tests
EXCLUDE_FROM_ALL
main.cpp
QTestSuite
)
TARGET_LINK_LIBRARIES(tests ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY})
TARGET_LINK_LIBRARIES(tests lmmslib)

19
tests/QTestSuite.cpp Normal file
View File

@@ -0,0 +1,19 @@
#include "QTestSuite.h"
QList<QTestSuite*> QTestSuite::m_suites;
QTestSuite::QTestSuite(QObject *parent) : QObject(parent)
{
m_suites << this;
}
QTestSuite::~QTestSuite()
{
m_suites.removeAll(this);
}
QList<QTestSuite*> QTestSuite::suites()
{
return m_suites;
}

21
tests/QTestSuite.h Normal file
View File

@@ -0,0 +1,21 @@
#ifndef QTESTSUITE_H
#define QTESTSUITE_H
#include <QtTest/QTest>
#include <QObject>
#include <QList>
class QTestSuite : public QObject
{
Q_OBJECT
public:
explicit QTestSuite(QObject *parent = 0);
~QTestSuite();
static QList<QTestSuite*> suites();
private:
static QList<QTestSuite*> m_suites;
};
#endif // QTESTSUITE_H

13
tests/main.cpp Normal file
View File

@@ -0,0 +1,13 @@
#include "QTestSuite.h"
#include <QtTest/QTest>
#include <QDebug>
int main(int argc, char* argv[])
{
for (QTestSuite*& suite : QTestSuite::suites())
{
QTest::qExec(suite, argc, argv);
}
}