第6章 QSKIPによるテストのスキップ

テスト関数で QSKIP(description) を使用する

QSKIP() マクロをテスト関数から呼び出すと、テストログに失敗を追加せずにテストの実行を停止します。これは、失敗が確実なテストをスキップするために使用できます。QSKIPdescription パラメータのテキストはテストログに追加され、テストが実行されなかった理由を説明します。

QSKIP は、実装がまだ完成していなかったり、特定のプラットフォームでサポートされていなかったりする場合に、テストをスキップするために使用できる。既知の障害がある場合、QEXPECT_FAIL 、可能であれば残りのテストの実行をサポートするため、推奨される。

テスト関数における QSKIP の例:

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

データ駆動型テストでは、QSKIP ()を呼び出すたびに、テストデータの現在の行だけをスキップします。データ駆動型テストに QSKIP の無条件呼び出しが含まれている場合、テスト・データの各行に対してスキップ・メッセージが生成されます。

data関数でのQSKIPの使用

data 関数から呼び出された場合、QSKIP() マクロは _data 関数の実行を停止します。これにより、関連するテスト関数の実行が阻止されます。

以下に例を示す:

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

    QSKIP("skipping all");

initTestCase() または initTestCase_data() から QSKIP を使用する。

initTestCase() またはinitTestCase_data() から呼び出された場合、QSKIP() マクロは、すべてのテスト関数と _data 関数をスキップする。

テストを除外する適切なメカニズムの選択も参照

© 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.