我发现了一个很棒的网站,讨论使用IronPython对Python GUI应用程序进行功能测试:http://www.voidspace.org.uk/python/articles/testing/但是我想使用Tkinter并且很难在图书馆.
Michael为IronPython展示了这个例子:
class FunctionalTest(TestCase):
def setUp(self):
self.mainForm = None
self._thread = Thread(ThreadStart(self.startMultiDoc))
self._thread.SetApartmentState(ApartmentState.STA)
self._thread.Start()
while self.mainForm is None:
Thread.CurrentThread.Join(100)
def invokeOnGUIThread(self, function):
return self.mainForm.Invoke(CallTarget0(function))
Run Code Online (Sandbox Code Playgroud)
...而且我很难将其转换为如何连接到基于Tkinter的应用程序,该应用程序将具有基本设置:
from tkinter import *
from tkinter import ttk
root = Tk()
ttk.Button(root, text="Hello World").grid()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
...我想你也想在第二个线程中的主根对象上运行一个方法,但是我没有看到与mainForm.Invoke()相同的方法.也许我在想错了.也许以这种方式进行功能测试GUI应用并不常见?
例子真棒!