以下是程序的设置方法。我有一个(自然)等待用户输入的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(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)的问题,还是我的程序设置错了? 谢谢!
答案 0 :(得分:2)
将Python文件作为模块导入时,解析文件时将执行全局范围中的任何代码。这也适用于类中的任何代码。
要允许您的文件导入和调用,您需要使用:
#!/usr/bin/python3
x = 1
y = 3
if "__name__" == "__main__":
print(x+y)
__ name__总是包含当前模块的名称,除非正在执行模块,在这种情况下,它将具有名称“__main __”
有关详细信息,请参阅:http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm或https://www.ibiblio.org/swaroopch/byteofpython/read/module-name.html