c++ - QTestLib 是否可以在运行时显示它正在测试的 GUI?

标签 c++ qt gui-testing qtestlib qttest

用例是,我有一个 Qt 应用程序,我想对其进行自动化的用户风格测试;也就是说,我想使用 keyClicks()、mouseClick() 等,但我希望在发生这种情况时实际显示 Qt 应用程序窗口。

我现在遇到的问题是,使用 QTestLib 涉及使用 QTEST_MAIN 宏而不是自己定义 main,所以我永远没有机会显示()正在测试的小部件。因此,这个问题的另一种表达方式是,有没有一种方法可以在使用其主要功能的应用程序上使用 QTestLib?

我知道 Squish 和 Testability Driver 可能具备此功能,但如果无需使用额外工具即可获得此功能,那将是理想的选择。

最佳答案

想出如何做到这一点。完全不需要 Squish,但它需要访问源代码。

在您的测试类中,存储指向 QApplication 和您要测试的任何小部件的指针。为了便于使用,存储指向应用程序的 QMainWindow 的指针。然后,要么使用指向您计划测试的小部件的指针实例化您的测试类,要么使用 window->findChild() 来获取您需要的任何元素。请记住,您需要在一切之后调用 app->processEvents() 。在显示小部件后调用它,以便显示所有子小部件。在与小部件交互后调用它,以便在 GUI 上实际处理交互。如果您需要速度足够慢以便观看,请使用 QTest::qSleep()。

关于c++ - QTestLib 是否可以在运行时显示它正在测试的 GUI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21126220/

相关文章:

使用 ICU 和 Nana GUI 库的 C++ - 字符串转换?

c++ - Qt - 如何将多个 QGroupBox 添加到 QTabWidget?

c++ - 如何修复数组的大小?

android - Qt/QML : TextInput with Keys. onPressed 只接收DEL键,不接收其他键

java - 机器人。在测试套件中,每个下一个测试都受到前一个测试的影响

Delphi GUI 测试和模态表单

c++ - 如何用C++获取MongoDB的当前实例?

c++ - Qt QGraphicsItemGroup 获取转换项目的坐标

c++ - QT Cuncurrent 带邮件客户端

testing - 定义非自动化软件测试并跟踪测试结果?