Capítulo 6: Saltar pruebas con QSKIP
Uso de QSKIP(description) en una función de prueba
Si se llama a la macro QSKIP() desde una función de prueba, se detiene la ejecución de la prueba sin añadir un fallo al registro de pruebas. Puede utilizarse para omitir pruebas que van a fallar con toda seguridad. El texto del parámetro QSKIP description se añade al registro de la prueba y debe explicar por qué no se ha realizado la prueba.
QSKIP puede utilizarse para omitir pruebas cuando la implementación aún no está completa o no es compatible con una plataforma determinada. Cuando hay fallos conocidos, se recomienda QEXPECT_FAIL, ya que permite ejecutar el resto de la prueba, siempre que sea posible.
Ejemplo de QSKIP en una función de prueba:
if (tst_Databases::getMySqlVersion(db).section(QChar('.'), 0, 0).toInt() < 5) QSKIP("Test requires MySQL >= 5.0");
En una prueba basada en datos, cada llamada a QSKIP() salta sólo la fila actual de datos de la prueba. Si la prueba basada en datos contiene una llamada incondicional a QSKIP, produce un mensaje de salto para cada fila de datos de prueba.
Utilización de QSKIP en una función _data
Si se llama desde una función _data, la macro QSKIP() detiene la ejecución de la función _data. Esto impide la ejecución de la función de prueba asociada.
Véase un ejemplo a continuación:
QTest::addColumn<bool>("bool"); QTest::newRow("local.1") << false; QTest::newRow("local.2") << true; QSKIP("skipping all");
Uso de QSKIP desde initTestCase() o initTestCase_data()
Si se llama desde initTestCase() o initTestCase_data(), la macro QSKIP() omitirá todas las funciones de prueba y _data.
Véase también Seleccionar mecanismos apropiados para excluir pruebas.
© 2026 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.