在 Linux 中将 QApplication 与 gTest 结合使用

Using QApplication with gTest in Linux

我在 Visual Studio 中的 gTest 中使用了 QApplication 对象。

int argc = 0;
char **argv = 0;
QMainWindow *window;

TEST() {
    app = new QApplication(argc, argv);
    window = new QMainWindow();
// Test Execution 
// Data gathering
    app.exec();
    delete window;
    window = new QMainWindow();
    delete app;
    app = new QApplication(argc, argv);
// Test Execution 
// Data gathering
    app.exec();
}

而且效果很好。

如果我使用与 Linux 相同的片段,并且在第二次调用 exec() 时生成的 windows 是空的,我必须终止执行。

与 Linux 一起工作缺少什么。

进行两个单独的测试也不起作用

Ronny Brendel 在评论中提出了正确的问题。

解决方案是不重新初始化 QApplication。

delete app;
app = new QApplication(argc, argv);

必须删除。