¿Cómo ejecutar múltiples clases de QTest?

Tengo un subproyecto donde pongo todos misQTest prueba unitaria y crea una aplicación de prueba independiente que ejecuta las pruebas (es decir, la ejecuto desde Qt Creator). Tengo varias clases de prueba con las que puedo ejecutarqExec(). Sin embargo, no sé cuál es la forma correcta de ejecutar múltiples clases de prueba.

Actualmente lo hago de esta manera (MVCE):

tests.pro
QT -= gui
QT += core \
    testlib

CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
TARGET = testrunner

HEADERS += test_foo.h
SOURCES += main.cpp
main.cpp
#include <QtTest>
#include <QCoreApplication>
#include "test_foo.h"

int main(int argc, char** argv) {
    QCoreApplication app(argc, argv);

    TestFooClass testFoo;
    TestBarClass testBar;
    // NOTE THIS LINE IN PARTICULAR.
    return QTest::qExec(&testFoo, argc, argv) || QTest::qExec(&testBar, argc, argv);
}
test_foo.h
#include <QtTest>

class TestFooClass: public QObject
{
    Q_OBJECT
private slots:
    void test_func_foo() {};
};

class TestBarClass: public QObject
{
    Q_OBJECT
private slots:
    void test_func_bar() {};
};

Sin embargo, eldocumentación paraqExec() dice que esta es la manera incorrecta:

Para las aplicaciones de prueba independientes, esta función no debe llamarse más de una vez, ya que las opciones de línea de comandos para registrar la salida de la prueba en archivos y ejecutar funciones de prueba individuales no se comportarán correctamente.

El otro gran inconveniente es que hayno hay un resumen único para todas las clases de prueba, solo para clases individuales. Esto es un problema cuando tengo docenas de clases y cada una tiene docenas de pruebas. Para verificar si todas las pruebas pasaron, tengo que desplazarme hacia arriba para ver todos los "Totales" de lo que pasó / reprobó de cada clase, por ejemplo:

********* Start testing of TestFooClass *********
PASS   : TestFooClass::initTestCase()
PASS   : TestFooClass::test_func_foo()
PASS   : TestFooClass::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted
********* Finished testing of TestFooClass *********
********* Start testing of TestBarClass *********
PASS   : TestBarClass::initTestCase()
PASS   : TestBarClass::test_func_bar()
PASS   : TestBarClass::cleanupTestCase()
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted
********* Finished testing of TestBarClass *********

También me sorprende miqExec() || qExec() funciona considerando que eldocumentación dice si una prueba fallóqExec() devuelve un valor distinto de cero, que debería significar todo lo siguienteqExec() las llamadas no sucederían, pero este no parece ser el caso.

¿Cuál es la forma correcta de ejecutar múltiples clases de prueba? Y para que pueda ver de un vistazo si alguna de las cientos de pruebas unitarias que he fallado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta