我只是在学习python和特别是unittest。
我试图遵循下面的简单示例,其中正在测试的函数是:
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不幸的是,我不知道出了什么问题!
发布于 2017-05-20 17:09:17
根据文档,您需要添加以下代码。这样,它将作为主模块运行,而不是任何其他模块。您可以看到示例这里。
if __name__ == '__main__':
unittest.main()https://stackoverflow.com/questions/44088614
复制相似问题