QTest没有显示对话框

时间:2017-10-17 14:57:07

标签: c++ qt qttest

Qt 4.7.1

我有一个qttest设置,直到最近一直表现良好。我已经遇到并处理了使用单一计时器与模态对话框进行交互的需要。

然而,我现在看到相反的行为; QFileDialog :: getSaveFileName之类的调用将立即返回,不显示对话框。这是因为我执行了合并,所以我假设它背后有一些代码或构建更改,但它不是函数调用本身。

就示例代码而言,我无法发布我的整个框架或AUT,但在测试函数中考虑以下内容:

QMessageBox::StandardButton button = QMessageBox::question(NULL,"Thing",
        "Do you want to do a thing?",
        QMessageBox::StandardButton::Yes | QMessageBox::StandardButton::No);

呼叫立即返回,按钮设置为NoButton。我应该补充说,我的测试周围有一些框架,我用QTest :: qExec手动启动每个测试。 (框架没有改变,我敢肯定)

关于可能导致此问题的任何想法?

编辑:

上面示例中的messagebox启动的eventloop将quitNow设置为true,这导致exec立即返回。我现在正在寻找为什么这样设置,同时随时赐教我!

1 个答案:

答案 0 :(得分:0)

这是因为我的cleanup()函数调用了qApp-> exit()。没有必要这样做!