Python Unittest运行主要功能

时间:2016-03-09 00:08:51

标签: 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(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)的问题,还是我的程序设置错了? 谢谢!

1 个答案:

答案 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.htmhttps://www.ibiblio.org/swaroopch/byteofpython/read/module-name.html