警告

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

第6章:使用QSKIP跳过测试#

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

在测试函数中使用QSKIP( `` 描述“

)

如果从测试函数中调用了 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函数。