Как интегрировать Catch2 с циклом событий QT? - PullRequest
0 голосов
/ 12 июня 2019

Некоторые части QT полагаются на то, что цикл событий работает и работает (или, по крайней мере, генерирует предупреждения в противном случае).Как интегрировать тесты Catch2 с циклом событий QT?

1 Ответ

0 голосов
/ 12 июня 2019

Для интеграции добавление таймера однократного запуска вызовет функцию, как только цикл событий приложения активен.Вот как выглядит мой код:

#define CATCH_CONFIG_RUNNER
#include "catch.hpp"
#include <QCoreApplication>
#include <QTimer>
int main(int argc, char *argv[]) {
  QCoreApplication app(argc, argv);
  QTimer::singleShot(0, [&]{
    app.exit(Catch::Session().run(argc, argv));
  });
  return app.exec();
}

Специально для меня я получил кучу предупреждений, в которых говорилось: «QSocketNotifier можно использовать только с потоками, запущенными с QThread», но оказалось, что на самом делепросто хотел, чтобы существовал цикл событий.Этот код здесь убрал предупреждение для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...