【问题标题】:Reinitializing a PyQt5 App without restarting (for GUI testing with squish)在不重新启动的情况下重新初始化 PyQt5 应用程序(用于使用 squish 进行 GUI 测试)
【发布时间】:2021-09-12 10:07:52
【问题描述】:

是否可以在不需要关闭并重新启动的情况下重新初始化(重置)pyqt5 GUI 应用程序?我的意思是让 Pyqt5 App 恢复到原始状态(比如删除用户在运行它后所做的所有条目)。

我的问题:我正在使用 squish for Qt 进行测试。我的 ApplicationUnderTest (AUT) 在这里用作 AttachedApp。现在,当我运行一个测试用例并进行一些记录然后将其关闭时,AUT 仍然具有应用程序的修改状态(所有条目都是在前一个测试用例中创建的)。现在,当我想记录一个新的测试用例时,它不会像我想要的那样工作,因为我希望每个测试用例都应该被记录和重放,而不依赖于其他测试用例。我知道可以让 squish 为每个测试用例重新启动 AUT,因此它会被正确地重新初始化,但这不是我在这种情况下想要的。我想让 squish 在开始时只运行一次 AUT,然后按照使用的方式附加 AUT,然后将每个测试用例的 AUT 恢复到原始状态,而无需重新启动它。

【问题讨论】:

    标签: user-interface pyqt pyqt5 squish


    【解决方案1】:

    在 Qt、PyQt 或任何其他主流编程语言或应用程序运行时系统中一般都没有这样的功能。

    “附加到已运行的应用程序”这一方面由每个 Squish 用户单独解决,通常通过应用程序本身对此类内部重置的某种支持,或通过在应用程序中执行必要步骤的脚本代码来解决。 (后者可能会遇到问题,这意味着如果重置失败,应该能够让这样的脚本代码重新启动可附加应用程序。)

    如果您不想通过脚本代码重置应用程序,并且 AUT 中没有重置它的功能,唯一的选择是重新启动它,但这当然违背了附加到正在运行的应用程序的意图(通常这样做是为了通过减少应用程序启动和关闭的数量来减少运行测试用例/套件所需的时间)。

    因此,如果您关心应用程序的启动和关闭时间,并且您无法实现这样的“重置”,您可能应该考虑跨多个系统分布式并发执行测试套件/案例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 2021-08-17
      相关资源
      最近更新 更多