Python单元测试运行主函数
下面是程序的设置方式。我有一个UI,它(自然地)等待用户输入Python单元测试运行主函数,python,unit-testing,Python,Unit Testing,下面是程序的设置方式。我有一个UI,它(自然地)等待用户输入 root = Tk() root.title("This space intentionally left blank") mainFrame = Frame(root) mainFrame.grid(column=1, row=2) sideFrame=Frame(root) sideFrame.grid(column=2, row=2) topLabelFrame=Frame(root) topLabelFrame.grid(co
root = Tk()
root.title("This space intentionally left blank")
mainFrame = Frame(root)
mainFrame.grid(column=1, row=2)
sideFrame=Frame(root)
sideFrame.grid(column=2, row=2)
topLabelFrame=Frame(root)
topLabelFrame.grid(column=1, row=1, columnspan=99)
main()
root.mainloop()
这是我的单元测试:
from unittest import TestCase
from AL2.AutoLinker2_0 import InputProcessor
class TestInputProcessor(TestCase):
def test_tokenize(self):
IP = InputProcessor("")
self.assertEqual(IP.tokenize("elbow mac"), ["elbow", "mac"])
当我运行时,我的UI弹出并挂起单元测试,直到我关闭UI。
我不熟悉单元测试,但我的理解是,单元测试应该只测试类,而不需要运行整个程序。这是我不理解的吗,或者这可能是IDE(pycharm)的问题,或者是我的程序设置错误?
谢谢 将Python文件作为模块导入时,全局范围内的任何代码都将在解析该文件时执行。这也适用于类中的任何代码 要允许导入和调用文件,您需要使用:
#!/usr/bin/python3
x = 1
y = 3
if "__name__" == "__main__":
print(x+y)
__名称总是包含当前模块的名称,除非模块正在执行,在这种情况下,它将具有名称“\uuuuu main\uuuuuu”
有关更多信息,请参见:或将Python文件作为模块导入时,解析文件时将执行全局范围内的任何代码。这也适用于类中的任何代码 要允许导入和调用文件,您需要使用:
#!/usr/bin/python3
x = 1
y = 3
if "__name__" == "__main__":
print(x+y)
__名称总是包含当前模块的名称,除非模块正在执行,在这种情况下,它将具有名称“\uuuuu main\uuuuuu”
有关更多信息,请参见:或如果您没有模块格式的代码,并且您正在将其导入单元测试,那么它将运行GUI代码。请确保使用if name==“main”条件altanner,我希望您将此作为答案发布,以便我可以接受。如果您没有模块格式的代码,并且正在将其导入单元测试,它将运行GUI代码。请确保使用if name==“main”条件altanner,我希望您将此作为答案发布,以便我可以接受它。