问题标签 [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 投票
2 回答
653 浏览

c++ - QT:模拟单元测试

是否可以运行应用程序,除此之外,您将 keyPress 事件发送到应用程序并使用 qtestlib 测试结果?

如果是的话,有人可以给我一个例子吗?

如果没有,有人可以告诉我一个更好的方法来完成上述要求吗?

谢谢...

0 投票
1 回答
465 浏览

c++ - QT 单元测试:qtestlib 分段错误

我正在编写一个测试应用程序来测试显示的表单是否是正确的表单。这是在按下菜单上的一个键之后。这是我遇到分段错误的代码块。

问题:

  • 当您只是模拟按键时,是否真的可以获得当前活动的窗口?
  • 使用activeWindow时我得到一个空指针,无论如何你可以获得应该在按键时显示在屏幕上的窗口的句柄吗?

谢谢...

0 投票
2 回答
34245 浏览

unit-testing - QT:获取对象的类名

我正在编写一个模拟另一个应用程序的按键的测试应用程序。对于每次按键,我都必须检查是否显示了正确的窗口/表单。所以我要做的是获取正在显示的窗口的指针并获取它的窗口标题。但是,并非所有窗口/窗体都显示窗口标题。所以我认为最好改为获取班级的名称。我怎样才能得到班级的名字?

当我尝试时:

要获取班级的名称,我得到:

“错误:类 QWidget 没有名为‘className’的成员”

有人可以告诉我正确的方法吗?

0 投票
1 回答
621 浏览

unit-testing - QT:何时使用 QT::keyRelease

我正在编写一个测试应用程序,用一堆菜单测试另一个应用程序。我使用 QT::keyPress 来模拟 keyPresses。但是,在某些时候它不再接受 keyPresses,直到我了解到您也需要使用 keyRelease (根据对我来说有点模糊的文档,它说“注意:在某些时候您应该使用keyRelease()。” --- 但是什么时候?在每次按键之后?)

在每个 keyPress 之后调用 keyRelease 也会模拟 keyPress,这很奇怪。在第一次调用 keyPress 后调用 keyRelease 一次,使其余的 keyPresses 工作,其余的 keyPresses 不起作用。

我很困惑。有人能告诉我什么时候使用 keyRelease 合适吗?

0 投票
1 回答
658 浏览

unit-testing - QT:单元测试分段错误

下面是用于模拟菜单上的按键的代码块。我可以深入了解我的应用程序的菜单,但是当我返回主窗体时,我遇到了一个分段错误.... :(

首先我展示我的应用程序:

然后模拟一个按键来显示主菜单:

然后模拟另一个 keyPress 回到我的主应用程序:

这就是我遇到分段错误的地方......谁能告诉我是什么导致了这个错误?

0 投票
2 回答
65093 浏览

c++ - 你如何在 Qt 中获得一个小部件的孩子?

我正在通过 Qt 的 KeyPress 函数模拟对应用程序的 keyPresses。所有 KeyPresses 工作正常。但是,当我传递一个QT::Key_Enter应该按下当前活动窗口的确定按钮或QT::Key_Cancel取消按钮时,它什么也不做。

我在想也许,因为这些按钮没有焦点,而父窗口本身就有焦点。你如何得到一个窗口的孩子?或者更确切地说,在其上找到 OK 或 Cancel 按钮,以便您可以将其设置为 activeWindow,然后成功传递 KeyPresses?

我有:

0 投票
2 回答
1513 浏览

c++ - QTest - 无法将 Qt::Enter 传递给 QPushButton

我正在使用 QTest 库创建一个自动化测试应用程序。我能够模拟应用程序上的按键,除非它进入具有 QDialogBu​​ttonBox(保存和取消)的窗口。这是我的示例代码:

现在,当它到达下一个窗口时,它有几个控件,其中输入焦点位于文本编辑控件上。当我按 Enter 时,它会按“保存”按钮。所以理论上,如果我应该将 Qt::Enter 传递给表单,它也应该按下“保存”按钮。但是,当我尝试通过 keyPress 时:

什么都没有发生……你认为发生了什么?我已经尝试 setFocus() 到按钮,但也没有任何反应......

0 投票
3 回答
2847 浏览

c++ - 将 QTest 与其他框架进行比较

您能否将流行的 C++ 单元测试框架与 Qt 的 QTest 进行比较?

(cppunit,升压测试,谷歌测试等。)

有哪些优点缺点?谢谢你。

注意:GUI 测试对我们来说不是很重要。

0 投票
1 回答
811 浏览

qt - 如何终止延迟/等待条件

我想知道是否有任何方法可以终止等待/延迟条件。

我正在使用QTest::qwait(ms)在我的代码中添加响应延迟。现在我想终止/打破这个延迟。比如,QTest::qWait(2000)会延迟 2 秒,那么我应该怎么做才能终止这 2 秒的等待时间?

注意:QTimer不适合我的代码,我正在使用Qtest:qwait添加延迟。

0 投票
1 回答
1196 浏览

qt-creator - QTestlib 单元测试项目,用于访问 QTCreator 中主项目中的类

我正在使用 QT Creator 并希望在单独的项目中运行我的单元测试。如何从我的测试项目中引用主项目中的类?