Qt单元测试在Qt Creator的应用程序输出窗格中为Qt 4.8重复两次(但不在Qt 5.2.2中)

时间:2015-03-18 09:10:20

标签: c++ qt qt-creator qt4.8 qtestlib

我刚注意到即使在新项目上,Qt单元测试也会在“应用程序输出”窗格中以不同的颜色写入两次 - 首先是洋红色,然后是黑色。我认为这是因为它写入了stdout和stderr。

这在Qt 4.8上发生了,但在Qt 5.2.2上没有发生。在Qt 5.2.2中,只打印黑色文本。

例如,对于仅包含此测试的单元测试项目:

void Untitled15Test::testCase1()
{
    QVERIFY2(false, "Failure");
}

输出是这个(我使用截图,所以颜色显示):

enter image description here

有没有办法可以关闭此行为?这是Qt4中的错误吗?

1 个答案:

答案 0 :(得分:1)

在对Qt Bug Tracker网站进行一些搜索之后,我发现它确实是一个错误。我找到了bug report mentioning it

  

说明如果关闭Windows上的“在终端上运行”选项,   qDebug的输出将在应用程序输出窗格中打印两次。   这是由于qDebug使用OutputDebugString和stderr输出   这是消息。要解决这个问题,我们可以执行以下任一项:显示   如果“运行”,则输出不同窗格中的OutputDebugString流和stderr   终端“已关闭。提供一个复选框以隐藏OutputDebugString   应用程序输出窗格中的流。防止QDebug使用   OutputDebugString和stderr。也许使用环境变量   由Qt Creator设定。

我认为这是因为QTestLib使用CONFIG += console ,同时关闭“Run in terminal”复选框,从而触发此错误。