警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

第6章:使用QSKIP跳过测试

如何在某些情况下跳过测试。

使用 QSKIP( `` description``

在测试函数中

如果从测试函数中调用QSKIP()宏,它会停止测试的执行,而不会在测试日志中添加失败记录。它可以用于跳过肯定会失败的测试。QSKIP description参数中的文本会被附加到测试日志中,并应解释为什么没有执行测试。

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函数。