2014-04-01 29 views
2

我想在python的unittest框架的tearDown方法中关闭一个wxPython框架。 这是我目前正在尝试使用setUp和tearDown框架的代码。如何以编程方式关闭wxPython框架?

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

我发现了这个问题。我需要不在应用程序上启动MainLoop。 我的工作代码是现在这个。

class ValidInputTest4(unittest.TestCase): 
    def setUp(self): 
     self.app = wx.App() 
     self.frame = FoodCalories(None) 

    def tearDown(self): 
     self.frame.Destroy() 

这干净地退出程序,并允许我做单元测试之间。

0

你可以试用Destroy()方法吗?也许这有效。

0

关闭是关闭框架的正确方法,但是当MainLoop被调用直到所有框架都关闭时,您的代码将被卡住在无限的gui事件循环中,这将不得不通过手动点击“X”您致电Close。