【问题标题】:PyTest Allert / Message BoxPyTest 警报/消息框
【发布时间】:2018-09-25 23:09:47
【问题描述】:

我的代码使用下面的代码生成一个警报/消息框。

import win32api
win32api.MessageBox(0, 'You have reached the end of the data.', 'End of Data')

有没有办法测试消息是否出现,例如类似assert appears?理想情况下,我想使用 PyTest 来做到这一点,但是仍然非常感谢使用其他框架的解决方案。测试框中的文本也很好,例如assert message == "You have reached the end of the data."

【问题讨论】:

  • 如果您需要有关我给出的答案的更多信息,请告诉我...

标签: python unit-testing testing pytest pywin32


【解决方案1】:

您使用的是 Windows,因此您可以使用 pywinauto 或 autoit 来缓存消息框的元素,然后使用 pytest 运行测试来断言消息的值!

这是pywinauto link 的文档。

这是autoitlink的文档

希望这会有所帮助!

【讨论】:

  • 谢谢,这真的很有帮助。我没有意识到 win32api 只适用于 Windows。所以我改为import tkinter as tkfrom tkinter import messageboxroot = tk.Tk() root.withdraw() messagebox.showwarning('End of Data', "You have reached the end of the data.")你知道用于测试该消息框的类似工具吗?我会保持原来的问题不变,因为我想其他人可能会觉得它有用。但我不知道这种变化是否值得写一个新问题。
  • 最后我确实写了第二个问题。我想我会把我原来的问题留在这里,以防其他人有同样的问题。我现在已经完成了这个相关的项目,并且必须处理其他事情。因此,我目前没有时间检查您的解决方案是否有效。我会等到我有时间做自己的实验或其他人在这里做出贡献,然后我可能会点击接受按钮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
相关资源
最近更新 更多