错误原因参考原文链接:https://blog.csdn.net/I_peter/article/details/79132179
if name == 'main’理解:https://blog.csdn.net/anshuai_aw1/article/details/82344884
可能的原因有以下三种:
- PyCharm的test runner没有配置正确,可通过“File->Settings->Tools->Python Intergreted Tools”查看并修改test runner设置,如还是行不通,可以再看看“Run->Edit Configuration->Python tests”下是否选择了正确的测试实例(不需要的可以用红色‘-’删去)。
- 测试函数没有以”test”开头
- 测试文件忘了加if name == ‘main’: (我的问题就是出在这里)
if name == 'main’理解==
name 是当前模块名,当模块被直接运行时模块名为 main 。这句话的意思就是,当模块被直接运行时,if 以下代码块将被运行,当模块是被导入时,代码块不被运行。
import unittest
from exercise01.names import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""测试name_function.py"""
def test_first_last_name(self):
"""能够正确地处理像Janis Joplin这样的姓名吗?"""
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
if __name__ == "__main__":(加上这个运行结果正常)
unittest.main()
========================================
Ran 1 test in 0.000s
OK