第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 関数をスキップする。

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

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。