问题标签 [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.
c++ - 开源项目中的 c++ 单元测试示例
我有兴趣了解“现实世界”中的 c++ 单元测试。我希望看到一个具有良好测试覆盖率的复杂类。最好使用 g-test 或 qtestlib 进行测试。我查看了 KDE 和 Chromium,但没有找到我想要的。
c++ - 如何控制我的 gmock 何时通过验证?
使用“另一个测试框架”(Qt),我想控制何时验证谷歌模拟:
但我在Cookbook中没有找到任何相关内容。
c++ - QSignalSpy 不能与线程一起使用
我写了一个执行工作对象的线程。一切正常。生成的信号也会按应有的方式发出。当然,我处理了有关线程/对象关联的常见错误。
今天我为这些工作线程/线程编写了一个自动化模块测试。我创建了一个 QSignalSpy 来等待工作对象(已移动到线程)发出的信号,如下所示:
我在标记的行中遇到了一个众所周知的错误:
首先,我预计会出现错误,因为 wait() 中的某些代码是在错误的线程中执行的。然后在QSignalSpy的实现中发现了如下代码:
这显然意味着 QSignalSpy 一直使用 DirectConnection 并且不能用于监视生活在不同线程中的对象的信号。
为什么他们在 Qt5.3 中这样编程?这是一个错误还是预期的行为?我该如何解决这个限制?
c++ - Qt 单元测试在 Qt Creator 的 Qt 4.8 的应用程序输出窗格中重复所有内容两次(但在 Qt 5.2.2 中没有)
我刚刚注意到,即使在一个全新的项目中,Qt Unit Test 也会在“应用程序输出”窗格中以不同的颜色两次写入所有内容——首先是洋红色,然后是黑色。我认为这是因为它同时写入标准输出和标准错误。
这发生在 Qt 4.8 但不在 Qt 5.2.2 上。在 Qt 5.2.2 中,只打印黑色文本,这是应该的。
例如,对于仅包含此测试的单元测试项目:
输出是这样的(我使用屏幕截图显示颜色):
有没有办法关闭这种行为?这是Qt4中的错误吗?
c++ - 强制 QBENCHMARK 执行多次迭代
如何使用 执行多次迭代QBENCHMARK
?
例如我有这个代码:
我查看了文档,它说:
将测量 QBENCHMARK 宏中的代码,并且可能还会重复多次以获得准确的测量结果。这取决于所选的测量后端。
我尝试使用默认值 and -tickcounter
,但都只显示一次迭代:
默认(无参数):
与-tickcounter
:
其他 2 个不起作用 --callgrind
仅适用于 Linux,而-eventcounter
似乎导致单元测试终止。
那么有没有办法进行QBENCHMARK
多次迭代呢?
c++ - 访问本机 QFileDialog
我正在为 Qt 应用程序编写 ui 测试。现在这个应用程序引发了一个 QFileDialog,它必须自动填写并提交。
我已经有一个 QTimer,即使在显示模式对话框时它也会运行。这种方法适用于许多对话框,例如 QMessageBox 或 QColorDialog。
问题是, QFileDialog 是本机对话框。所以我无法搜索对话框小部件,因为没有。
有没有办法访问本机对话框。
我正在 Ubuntu 上开发,所以我猜这是一个 GTK 对话框。测试将始终在 Ubuntu 上运行。
c++ - QTest 和 .pro 工作流程
这是我的(非常简化的)目录树:
我想要实现的是配置io_test.pro - 这是一个单元测试项目(使用 QTest) - 能够测试io命名空间。
这是我当前的io_test.pro:
我的问题是我在构建时有链接器错误。这些错误在使用QMelt项目(我要测试的项目)依赖的方法上,包含在alsfilesystem中。
所以我的问题是我应该对io_test.pro进行哪些修改才能使用QMelt.pro构建的.obj?
qt - mouseclick/keyclick 不适用于 QTest 框架中树视图内的委托小部件
我使用 itemdelegate 为树视图中的一列创建组合框。
因此在编辑单元格时,按 UP/Down 可以更改值。
但似乎我无法使用 qtest 框架模拟以下操作
上面的这些代码适用于普通的 qt 应用程序。
但它在 qtest 框架中不起作用
如果我尝试使用 qtest 框架对其进行测试,则单元格的值始终为 1.01
我也尝试过鼠标点击,但遇到了同样的问题。
我的环境Qt5.5、ubuntu14.10
c++ - 如何使用 qtest 测试信号槽连接
我刚开始使用 QT,并希望进行单元测试。我找到了一个支持在我的应用程序之外进行测试的项目结构的蓝图。
对于我的第一个测试,我想单击“退出”菜单点,检查 QMainWindow 的关闭操作是否真的被调用。
来自Java及其所有模拟框架,这就是我想做的事情:
- 模拟点击菜单(或按键)
- 单击退出操作(或按键)
- 验证发出了 QAction 的信号“triggered()”
- 验证是否调用了 QMainWindow 的插槽“关闭”
我在网上阅读了 qtest 教程、KDE 文档和其他内容,但我无法使用 qtest 来表达(还)。
我发现Qt UI testing: How to simulation a click on a QMenuBar item using QTest? 它描述了类似的事情,但即使只有 1、2、3 被覆盖(而且我什至无法让它们工作)。
那么如何编写这样的测试用例呢?这甚至可能吗?
qtestlib - qtest:编译测试时没有规则使目标错误
我一直在努力创建一个单元测试。我需要学习这个来测试我们的 gui 对象。到目前为止,这个网站已经回答了很多问题(大多数问题以前被问过和回答过)。但是,我现在遇到了一个错误,我找不到帮助我解决它的链接。我得到“没有规则来制作'TestGui.o'需要的目标'TestGui.cpp'。停止”。谁能告诉我如何解决这个问题并编译我的测试?这是我第一次尝试测试...
这是我的测试文件-
我的 test.pro 文件在这里 -
这是我的项目 .pro 文件 -
我的项目 .pri 文件是我项目的源代码和标头 -