Kapitel 6: Überspringen von Tests mit QSKIP

Verwendung von QSKIP(description) in einer Testfunktion

Wenn das Makro QSKIP() von einer Testfunktion aus aufgerufen wird, stoppt es die Ausführung des Tests, ohne einen Fehler in das Testprotokoll aufzunehmen. Es kann verwendet werden, um Tests zu überspringen, die mit Sicherheit fehlschlagen werden. Der Text im Parameter QSKIP description wird an das Testprotokoll angehängt und sollte erklären, warum der Test nicht ausgeführt wurde.

QSKIP kann verwendet werden, um Tests zu überspringen, wenn die Implementierung noch nicht vollständig ist oder auf einer bestimmten Plattform nicht unterstützt wird. Bei bekannten Fehlern wird QEXPECT_FAIL empfohlen, da es die Durchführung des restlichen Tests unterstützt, wenn dies möglich ist.

Beispiel für QSKIP in einer Testfunktion:

if (tst_Databases::getMySqlVersion(db).section(QChar('.'), 0, 0).toInt() < 5)
    QSKIP("Test requires MySQL >= 5.0");

In einem datengesteuerten Test überspringt jeder Aufruf von QSKIP() nur die aktuelle Zeile der Testdaten. Wenn der datengesteuerte Test einen unbedingten Aufruf von QSKIP enthält, wird für jede Zeile der Testdaten eine Überspringungsmeldung erzeugt.

Verwendung von QSKIP in einer _data-Funktion

Wird QSKIP von einer _data-Funktion aus aufgerufen, hält das Makro QSKIP() die Ausführung der _data-Funktion an. Dadurch wird die Ausführung der zugehörigen Testfunktion verhindert.

Siehe unten für ein Beispiel:

    QTest::addColumn<bool>("bool");
    QTest::newRow("local.1") << false;
    QTest::newRow("local.2") << true;

    QSKIP("skipping all");

Verwendung von QSKIP aus initTestCase() oder initTestCase_data()

Beim Aufruf aus initTestCase() oder initTestCase_data() überspringt das Makro QSKIP() alle Test- und _data-Funktionen.

Siehe auch Geeignete Mechanismen zum Ausschluss von Tests auswählen.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.