第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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。