这是我第一次尝试使用Tkinter插件,我几乎找不到什么教程。到目前为止,我所看到的所有答案都将一个类放到了您要构建的py文件中,但是我有大量的测试,这些测试已经编译成可运行许多单独测试的Test类。所有的测试都会运行,在尝试添加到ui之前不会遇到任何错误。
我希望能够通过单击一个按钮来运行每个套件。我的问题似乎是我在某些地方缺少了一个步骤,但是单击按钮时没有得到任何错误或动作,但是单击并关闭ui窗口后却出现了错误。我应该指出,导入设置文件(包含大多数webdriver导入)也无济于事。我收到同样的错误。
跟踪:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python37\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:\Python37\lib\unittest\case.py", line 663, in __call__
return self.run(*args, **kwds)
File "C:\Python37\lib\unittest\case.py", line 590, in run
testMethod = getattr(self, self._testMethodName)
AttributeError: 'Test' object has no attribute 'runTest'
我的用户界面代码:
import sys, os, tkinter, TESTadmin
top = tkinter.Tk()
a = TESTadmin.Test()
B = tkinter.Button(top, text= "Test Window", command=a )
B.pack()
top.mainloop()
为清楚起见,我的主要测试文件是
from helpers.settings import *
from pieces import adminLogin, adminLogout, docs
class Test(unittest.TestCase):
def setUp(self):
# Maximize Window (remove quotes to use)
'''sel.maximize_window()'''
self.browser = webdriver.Firefox()
self.browser.get("https://mywebsite.net")
# We instantiate and start the browser
def testCases(self):# Add Tests Below
#log in to admin side
login = adminLogin.AdminLogin.do(self)
#docs page
docpage = docs.Docs.do(self)
#log out
logout = adminLogout.Logout.do(self)
if G.log:
for k in G.log.items():
print(k)
### Uncomment to close browser after test ###
def tearDown(self):
self.browser.close()
if __name__ == "__main__":
unittest.main()
答案 0 :(得分:0)
事实证明,我认为答案很简单。
此行:
def testCases(self):
需要阅读:
def runTest(self):
在更改之后,每件事都会正常运行。
我的困惑是因为最初在构建这些测试时,我遵循此处的说明-> https://selenium-python.readthedocs.io/ 他们向您展示了如何使用testCases()方法,并且可以正常工作!只是不是为了上课。我不知道该功能放在何处,更不用说Webdriver除了我正在使用的功能以外,还具有内置功能。</ p>