python--我用的pycharm通过unittest进行测试测试,运行成功没有出现句点?

最开始我按照书上代码运行,显示Ran 0 tests in 0.000s,具体代码如下
待测试代码:

name_function.py

def get_formatted_name(first,last):
'''piease enter your full name'''
full_name = first + ' ' + last
return full_name.title()

测试代码:
import unittest
from name_function import get_formatted_name

class NameTestCase(unittest.TestCase):

'''测试name_function.py'''
def test_first_last_name(self):
    '''能否正确处理名字'''
    formatted_name = get_formatted_name('jian','ming')
    self.assertEqual(formatted_name,'Jian Ming')

unittest.main()

运行结果:
Launching unittests with arguments python -m unittest E:/python code/test_name_function.py in E:python code
Ran 0 tests in 0.000s
OK
Process finished with exit code 0
Empty test suite.

之后我在网上找到了两种解决方案
方案一:
将测试代码处的
unittest.main()
修改为
if name == '__main__':

unittest.main()

运行结果为
Launching unittests with arguments python -m unittest E:/python code/test_name_function.py in E:python code
Ran 1 test in 0.001s
OK

没有句点,而书上运行结果如下,是有句点的
.
Ran 1 test in 0.000s
OK

方案二:
对get_formatted_name()进行测试
步骤如下:
选中该方法后ctrl+shift+T,如图
图片描述
选择creat New Test,选中该方法。测试代码如下
import unittest
from name_function import get_formatted_name

class NameTestCase(unittest.TestCase):

'''测试name_function.py'''
def test_first_last_name(self):
    '''能否正确处理名字'''
    formatted_name = get_formatted_name('jian','ming')
    self.assertEqual(formatted_name,'Jian Ming')

就是相比于书上代码,删掉了unittest.main()
运行结果同方案一,为什么会没有句点呢?

阅读 14.9k
3 个回答

选择运行方式的时候造成的

clipboard.png

1.unittest方式运行就没有句点,不要用Python test就好了
2.选择文件直接运行就有句点了

新手上路,请多包涵

clipboard.png

同用pycharm,用你的方案一出现此现象,除了没有句点,测试代码都没问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏