Unittest示例不起作用

时间:2017-05-20 16:59:34

标签: python python-3.x python-unittest

我只是学习python和unittests。

我正在尝试按照以下简单示例进行测试:

def get_formatted_name(first, last):
    """Generate a neatly formatted name"""
    full_name = first + ' ' + last
    return full_name.title()

,测试代码为:

import unittest
from name_function import get_formatted_name


class NamesTestCase(unittest.TestCase):
    """Tests for 'name_function.py'"""

    def test_first_last_name(self):
        """Do names liike 'Janis Joplin' work """
        formatted_name = get_formatted_name('janis', 'joplin')
        self.assertEqual(formatted_name, 'Janis Joplin')

unittest.main()

根据示例,这应该运行正常,并报告测试成功运行。

但是我收到以下错误:

EE
======================================================================
ERROR: test_name_function (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'test_name_function'

======================================================================
ERROR: true (unittest.loader._FailedTest)
----------------------------------------------------------------------
AttributeError: module '__main__' has no attribute 'true'

----------------------------------------------------------------------
Ran 2 tests in 0.000s

FAILED (errors=2)

Process finished with exit code 1

不幸的是我不知道出了什么问题!

1 个答案:

答案 0 :(得分:2)

根据文档,您需要添加以下代码。这样它将作为主要模块而不是其他任何东西运行。您可以看到示例here

if __name__ == '__main__':
    unittest.main()