gpt4 book ai didi

qt - 如何查看 QTest 结果

转载 作者:行者123 更新时间:2023-12-03 07:35:34 30 4
gpt4 key购买 nike

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

项目构建并且测试器可执行工作正常。但是,我在查看结果时遇到问题(例如 PASS 输出)。当测试运行时,控制台窗口将打开,接收所有测试输出。如果测试完成,控制台窗口将立即关闭,我实际上看不到它显示的内容。特别是我看不到某些测试是否失败。

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

那么这应该如何工作?

测试输出实际上应该发送到新打开的控制台窗口吗?那为什么不保持开放呢?或者应该将整个测试输出发送到 VS 调试器输出面板?有没有办法重定向输出?

最佳答案

您是否安装了适合您的 Visual Studio 版本的 Visual Studio 插件?如果没有,您应该从 qt-project.org/downloads 下载它.

我做了一个简单的qt test并在 Visual Studio 中导入 *.pro 文件并运行测试;对我来说,一切正常,窗口保持打开状态,显示测试的简历:

enter image description here

我建议写 example ,使用 Visual Studio 插件 将其导入到 Visual Studio 中并比较项目设置。很可能需要在某处更改标志才能使窗口保持打开状态。

您也可能需要Console (/SUBSYSTEM:CONSOLE)链接器选项集。右键单击项目,转到项目Properties,选择Configuration Properties>Linker>System。对于右侧 Pane 中的 Subsystem 属性,单击右侧列中的下拉框。现在选择控制台 (/SUBSYSTEM:CONSOLE) 并重新运行测试(Ctrl+F5 而不仅仅是 F5) (1).

如果您在调试模式下运行测试(即按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"

(1) - How to keep the console window open in Visual C++?

关于qt - 如何查看 QTest 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325901/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com