我试图在python的unittest框架的tearDown方法中关闭一个wxPython框架。 这是我目前正在尝试使用setUp和tearDown框架的代码。
class ValidInputTest4(unittest.TestCase):
def setUp(self):
total_food_calories = wx.App()
self.one = FoodCalories(None)
total_food_calories.MainLoop()
def tearDown(self):
self.one.Close()
此代码正确显示应用程序,但无法完全关闭应用程序,就好像用户手动点击了右上角的“X”按钮一样。
答案 0 :(得分:0)
您可以试用Destroy()
方法吗?也许这有用。
答案 1 :(得分:0)
关闭是关闭框架的正确方法,但是当调用MainLoop时,你的代码将被卡在无限的gui事件循环中,直到所有框架都关闭,这必须通过手动点击“X”来实现,因为它不会到达你的致电关闭。
答案 2 :(得分:0)
我发现了问题。我不需要在应用程序上启动MainLoop。 我的工作代码就是这个。
class ValidInputTest4(unittest.TestCase):
def setUp(self):
self.app = wx.App()
self.frame = FoodCalories(None)
def tearDown(self):
self.frame.Destroy()
这完全退出程序并允许我在两者之间进行单元测试。