问题标签 [qtestlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
98 浏览

c++ - _data 函数中的 QTest 可选列

函数中是否可以有可选列_data(),类似于函数的可选参数 - int foo(int a, int b=5)

就像是:

不幸QFETCH的是,如果可选列不可用,它将简单地断言。如果它不可用,我想为其分配一些默认值。

0 投票
1 回答
66 浏览

c++ - 如何使用 QTestLib 测试不返回任何内容的函数

我是单元测试和 QTestLib 的新手。我找不到这个特定问题的答案。如何测试不返回任何内容的函数(或单元)。我已阅读 Qt 站点中给出的教程,但我不知道如何继续。

我已经复制了 Qt 网站中给出的TextFinder示例。我现在想测试 on_findbutton_clicked 函数。提前致谢

0 投票
2 回答
1361 浏览

pyqt - PyQt QTest 点击 QMenu

在我的 PyQt 应用程序中,我有一个主菜单,它具有以下结构:

我想单击俄语以测试语言是否已更改。我在 GUI 中有一个到language_menu的链接

所以

但它告诉我

参数 1 具有意外类型“QAction”

我该怎么做呢?甚至可能吗?

0 投票
1 回答
1342 浏览

c++ - Qt测试如何在发出信号时停止执行

我目前正在测试一个 Qt 应用程序。我必须构建一个测试来检查 csv 文件的正确输入和输出。

问题:

数据正在异步读取,我的测试程序在数据加载之前结束,这是我得到的输出。

程序流程:

有一个类 AsyncLoader 加载数据。数据读取完成后,它会发出 completed() 信号。

因此,我修改了测试程序以包含QEventLoop。代码如下所示

但是有了这个,我得到一个“子进程错误:FailedToStart

有没有办法测试异步单元?

我正在使用 Qt 5.4.2 版,QMake 3.0 版

0 投票
1 回答
463 浏览

c++ - QT在锁定线程中关闭窗口

我有一个 QT 应用程序,我想用 QTest 对其进行测试。关于我想做的事情:我有一个主窗口,按钮设置所在的位置。如果我单击此按钮,则会出现 QDialog。我想测试这是否真的发生

然后我会检查新对话框中是否存在文本等。

对话框出现但是 - 如何在测试中关闭它而不手动关闭它?以及如何测试其中是否存在文本。如果我做对了,在显示对话框时我将无法在测试中做任何事情。

我究竟做错了什么?

0 投票
1 回答
258 浏览

c++ - QTEST_MAIN 不使用提供的 Testclass

我想对线程及其交互(例如共享数据)进行性能测试。为此,我尝试了 Qt 提供的 Tutorial for Benchmarks,它引导我编写以下代码。

基准级:

包含线程任务的类:

主函数被 QTest 宏取代:

QTEST_MAIN 返回 0,这意味着,根据 Qt 文档,没有要测试的内容。如果我现在尝试使用调试器来了解可能出现的问题,我会收到两个启动错误:

Gdb 进程已终止(0)

在启动程序以代码 0xc0000138 退出期间

我做错什么了?

我需要QTest(而不是例如 ellapsedTimer)来测量没有操作系统和 adobe 更新程序污染的性能。这是一台公司拥有的笔记本电脑。我检查了我的包含,甚至重新安装了 Qt。

0 投票
1 回答
541 浏览

c++ - QTest 执行两次测试用例

我在 QTest 中编写了一个小型基准测试,尽管我使用了 QBENCHMARK_ONCE。

这里有一些复制问题的示例代码:

标题:

cpp文件:

运行“mytest”我得到:

我希望它只运行一次。一些基准测试每次迭代需要一分钟......

我在 Linux 上使用 CMake 和 make 后端。他们测试类被编译成单独的可执行文件。由于 ctest 没有给我有用的输出,我直接运行它们,即“# ./mytest”

//补充:CMakeLists.txt

0 投票
1 回答
4881 浏览

c++ - 如何运行多个 QTest 课程?

我有一个子项目,我在其中放置了所有QTest单元测试并构建了一个运行测试的独立测试应用程序(即我从 Qt Creator 中运行它)。我有多个可以使用qExec(). 但是我不知道执行多个测试类的正确方法是什么。

目前我是这样做的(MVCE):

测试.pro

主文件

test_foo.h

但是文档qExec()说这是错误的方法:

对于独立测试应用程序,不应多次调用此函数,因为用于将测试输出记录到文件和执行单个测试函数的命令行选项将无法正确运行。

另一个主要缺点是没有针对所有测试类的单一摘要,仅针对个别类。当我有几十个班级,每个班级都有几十个测试时,这是一个问题。要检查所有测试是否通过,我必须向上滚动以查看每个类的通过/失败的所有“总计”,例如:

qExec() || qExec()考虑到文档说如果测试失败qExec()返回非零值,我也对我的作品感到惊讶,这应该意味着以下所有qExec()调用都不会发生,但情况似乎并非如此。

运行多个测试类的正确方法是什么?这样我就可以一目了然地看到数百个单元测试中是否有任何一个失败了。

0 投票
1 回答
928 浏览

c++ - 如何使用 qtestlib 测试完整的 Qt5 GUI?

qtestlib与我的Qt5 C++ 小部件应用程序一起使用,我如何测试我的完整 GUI

在 的文档qtestlib,解释了如何QWidget通过模拟按键等来测试个人,但是对于完整的 UI,这似乎是不可能的,因为我的 UI 的各个小部件隐藏在自动生成 ui_XXX.h的文件中。

那么我该怎么做呢?

0 投票
2 回答
1671 浏览

qt - 如何通过 QTest 访问 QMessageBox

我正在使用QTest在我的应用程序中创建一些自动化GUI 测试

我可以使用以下命令从我的应用程序访问小部件:

它工作正常,但现在我必须单击QMessageBox的 OK 按钮。

我在我的应用程序中创建了QMessageBox,如下所示:

我如何才能访问此QMessageBox及其按钮?