Получение тестового сканера Qt Creator для поиска всех тестовых классов в одном проекте - PullRequest
0 голосов
/ 05 июля 2018

Наша команда использует Qt Creator. У нас есть довольно большие проекты, и для каждого проекта у нас есть тестовый проект с тестовым классом для каждого производственного класса. Основной тестовый проект вызывает QTest::qExec для каждого тестового класса. Мы запускаем наши тесты, просто запустив тестовый проект.

Это отлично работает, но вывод ограничен консолью, выглядит следующим образом:

********* Start testing of TestClass1 *********
Config: Using QtTest library 5.10.1, Qt 5.10.1 (x86_64-little_endian-lp64 shared (dynamic) debug build; by GCC 7.3.0)
PASS   : TestClass1::initTestCase()
PASS   : TestClass1::test1()
PASS   : TestClass1::test2()
PASS   : TestClass1::cleanupTestCase()
Totals: 2 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
********* Finished testing of TestClass1*********
********* Start testing of TestClass2 *********
Config: Using QtTest library 5.10.1, Qt 5.10.1 (x86_64-little_endian-lp64 shared (dynamic) debug build; by GCC 7.3.0)
PASS   : TestClass2::initTestCase()
PASS   : TestClass2::test1()
PASS   : TestClass2::test2()
PASS   : TestClass2::cleanupTestCase()
Totals: 2 passed, 0 failed, 0 skipped, 0 blacklisted, 3ms
********* Finished testing of TestClass2*********

Я только что обнаружил интегрированный тестовый интерфейс и очень хотел бы его использовать. Однако я не могу заставить сканер (Инструменты-> Тесты-> Повторное сканирование тестов) найти все тесты в проекте. Если я напишу это в основном, он отлично работает для TestClass1:

int main(int argc, char** argv) {
    TestClass1 test;
    return QTest::qExec(&test, argc, argv);
}

Однако, если я пытаюсь добавить TestClass2, как показано ниже, сканер распознает только TestClass2:

int main(int argc, char** argv) {
    TestClass1 test1;
    int ret = QTest::qExec(&test1, argc, argv);
    TestClass2 test2;
    int ret &= QTest::qExec(&test2, argc, argv);
    return ret;
}

Кажется, что сканер находит только последний класс, выполненный с QTest::qExec.

Есть идеи, как мне найти все тесты, не затрагивая существующие классы тестов?

...