我只是学习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
不幸的是我不知道出了什么问题!
答案 0 :(得分:2)
根据文档,您需要添加以下代码。这样它将作为主要模块而不是其他任何东西运行。您可以看到示例here。
if __name__ == '__main__':
unittest.main()