diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-03-01 17:06:23 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-03-14 14:28:36 +0000 |
commit | 3b42e098ef711e5c60dd18744f6ff9fa07877424 (patch) | |
tree | 543904e3063adda8054bc92be45c25e74043e96f /src/testlib/qtestlog.cpp | |
parent | 8864aca9e5a0b2fd727ffc010bc0e9a538f1546b (diff) |
testlib: Add Test Anything Protocol (TAP) reporter
The Test Anything Protocol (TAP), was originally Perl's simple text-based
interface between testing modules and test harnesses, but has since been
adopted by a large number of producers and consumers in many different
languages, which allows colorizing and summarizing test results.
The format is very simple:
TAP version 13
ok 1 - test description
not ok 2 - test description
---
message: 'Failure message'
severity: fail
expected: 123
actual: 456
...
ok 3 - test description # SKIP
1..3
The specification [1] is very brief, so the implementation has been
based on how typical consumers behave, especially when it comes to
the undefined diagnostics block.
[1] http://testanything.org/tap-version-13-specification.html
Change-Id: I616e802ea380165c678510e940ddc6607d39c92d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/testlib/qtestlog.cpp')
-rw-r--r-- | src/testlib/qtestlog.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp index 1c864db71a..3fec395fbe 100644 --- a/src/testlib/qtestlog.cpp +++ b/src/testlib/qtestlog.cpp @@ -47,6 +47,7 @@ #include <QtTest/private/qxunittestlogger_p.h> #include <QtTest/private/qxmltestlogger_p.h> #include <QtTest/private/qteamcitylogger_p.h> +#include <QtTest/private/qtaptestlogger_p.h> #if defined(HAVE_XCTEST) #include <QtTest/private/qxctestlogger_p.h> #endif @@ -213,6 +214,11 @@ namespace QTest { FOREACH_LOGGER(logger->leaveTestFunction()); } + static void enterTestData(QTestData *data) + { + FOREACH_LOGGER(logger->enterTestData(data)); + } + static void addIncident(QAbstractTestLogger::IncidentTypes type, const char *description, const char *file = 0, int line = 0) { @@ -341,6 +347,12 @@ void QTestLog::enterTestFunction(const char* function) QTest::TestLoggers::enterTestFunction(function); } +void QTestLog::enterTestData(QTestData *data) +{ + QTEST_ASSERT(data); + QTest::TestLoggers::enterTestData(data); +} + int QTestLog::unhandledIgnoreMessages() { int i = 0; @@ -500,6 +512,9 @@ void QTestLog::addLogger(LogMode mode, const char *filename) case QTestLog::TeamCity: logger = new QTeamCityLogger(filename); break; + case QTestLog::TAP: + logger = new QTapTestLogger(filename); + break; #if defined(HAVE_XCTEST) case QTestLog::XCTest: logger = new QXcodeTestLogger; @@ -602,6 +617,11 @@ int QTestLog::blacklistCount() return QTest::blacklists; } +int QTestLog::totalCount() +{ + return passCount() + failCount() + skipCount() + blacklistCount(); +} + void QTestLog::resetCounters() { QTest::passes = 0; |