Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查看QTest结果_Qt_Visual Studio 2013_Qtestlib_Qt5.3 - Fatal编程技术网

如何查看QTest结果

如何查看QTest结果,qt,visual-studio-2013,qtestlib,qt5.3,Qt,Visual Studio 2013,Qtestlib,Qt5.3,我正在使用Qt5.3.2的QTest对一个类执行一些单元测试。我正在使用VS2013 Express构建测试仪。VS项目文件是使用qmake从.pro文件生成的。为了运行测试,我将QTEST_MAIN添加到源文件中 项目构建和测试人员可执行的工作都很好。但是,我在查看结果时遇到问题(例如,通过输出)。测试运行时,控制台窗口打开,接收所有测试输出。如果测试完成,控制台窗口立即关闭,我实际上看不到它显示了什么。特别是我看不出是否有一些测试失败 我想QTest使用stdout作为默认输出通道。所以我尝

我正在使用Qt5.3.2的QTest对一个类执行一些单元测试。我正在使用VS2013 Express构建测试仪。VS项目文件是使用qmake从.pro文件生成的。为了运行测试,我将QTEST_MAIN添加到源文件中

项目构建和测试人员可执行的工作都很好。但是,我在查看结果时遇到问题(例如,通过输出)。测试运行时,控制台窗口打开,接收所有测试输出。如果测试完成,控制台窗口立即关闭,我实际上看不到它显示了什么。特别是我看不出是否有一些测试失败

我想QTest使用stdout作为默认输出通道。所以我尝试了VS调试器选项“将标准输出重定向到输出窗口”,但没有效果

那么这是怎么回事


测试输出是否应该实际转到新打开的控制台窗口?那它为什么不开着呢?或者整个测试输出都应该进入VS调试器输出面板?是否有重定向输出的方法?

是否为您的
Visual Studio
版本安装了
Visual Studio加载项?如果没有,你应该从下载

我做了一个简单的测试,将
*.pro
文件导入
visualstudio
并运行了测试;对我来说,一切正常,窗口保持打开状态,显示测试的恢复:

我建议编写,使用Visual Studio加载项在Visual Studio中导入,并比较项目设置。可能需要在某个地方更改一个标志,以使窗口保持打开状态

您还可能需要
控制台(/SUBSYSTEM:Console)
链接器选项集。右键单击项目,转到项目
属性
,选择
配置属性>链接器>系统
。对于右侧窗格中的
子系统
属性,单击右侧列中的下拉框。现在选择
Console(/SUBSYSTEM:Console)
并重新运行测试(Ctrl+F5,而不仅仅是F5)(1)

如果您在
Debug
模式下运行测试(即按F5),您的窗口将不会保持打开状态。如果希望它保持打开状态,则需要在测试析构函数中添加一个
getch()
调用,当测试完成时,窗口将一直等待输入(例如
Enter
):

对于我的测试代码,应该是:

#include <QtTest/QtTest>
#include <conio.h>

class TestQString: public QObject
{
    Q_OBJECT
private slots:
    void toUpper();

public:
    ~TestQString()
    {
        getch();
    }
};

void TestQString::toUpper()
{
    QString str = "Hello";
    QCOMPARE(str.toUpper(), QString("HELLO"));
}

QTEST_MAIN(TestQString)
#include "testqstring.moc"
#包括
#包括
类TestQString:公共QObject
{
Q_对象
专用插槽:
void toUpper();
公众:
~TestQString()
{
getch();
}
};
void TestQString::toUpper()
{
QString str=“你好”;
QCOMPARE(str.toUpper(),QString(“HELLO”);
}
QTEST_MAIN(测试管柱)
#包括“testqstring.moc”

(1) -

不,我在那里看不到结果。但“导出”是什么意思?@Silicomancer By export我指的是你所说的重定向(我尝试了VS调试器选项“将标准输出重定向到输出窗口”)。但请看我的编辑。目前我正在使用VS 2013的快速版本。这意味着我无法安装插件:-(我检查了控制台选项。它已经按照您的建议进行了配置。Anway在使用Strg+F5运行时,窗口保持打开状态。这很奇怪。似乎我需要编写自己的主要功能,包括等待呼叫:-(
使用Strg+F5运行时,窗口保持打开状态
-这不是您想要的吗?为什么您需要编写自己的函数?为什么不直接从控制台(命令行)运行测试(应用程序)?别管VisualStudio。因为在使用VS IDE时,调试测试代码和改进测试要容易得多。我的意思是IDE就是为了这个。我想一定有一个简单的解决方案。