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

Rod*_*ick 8 c++ qt gui-testing qttest qtestlib

用例是,我有一个Qt应用程序,我想自动进行用户式测试; 也就是说,我想使用keyClicks(),mouseClick()等,但我想在发生这种情况时实际显示Qt应用程序窗口.

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

我知道Squish和可能的Testability Driver都能做到这一点,但如果可以在不使用额外工具的情况下获得此功能,那么这将是理想的选择.

Rod*_*ick 8

弄清楚如何做到这一点.使Squish完全没必要,但它需要源代码访问.

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