Python Unittest shortDescription打印出无

时间:2017-01-23 06:56:17

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

我发现了shortDescription功能,并渴望尝试一下。

  

SHORTDESCRIPTION()   返回测试的描述,如果没有提供描述,则返回None。此方法的默认实现返回测试方法的docstring的第一行(如果可用)或None。

奇怪的是,我无法让它发挥作用。 谁能发现我做错了什么?

我的班级继承自unittest.TestCase,甚至还有文件串

def test_smth(self):
    """
    TEST
    """
    self.description = 'TEST!'
    print(self.shortDescription())

在Python 3.6中打印出None

2 个答案:

答案 0 :(得分:4)

doc-string的第一行是空的:

"""   <--- this is the first line
TEST
"""

删除第一个空行,您将看到您想要的内容:

"""TEST
"""
➜  /tmp cat t.py
import unittest

class UT(unittest.TestCase):
    def test_smth(self):
        """TEST"""
        print('shortDescription():', self.shortDescription())


unittest.main()
➜  /tmp python3.6 t.py
shortDescription(): TEST
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

如果使用-v命令行选项运行测试,则可以看到打印的描述而不是测试方法名称:

➜  /tmp python3.6 t.py -v
test_smth (__main__.UT)
TEST ... shortDescription(): TEST
ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

答案 1 :(得分:1)

您在函数参数中缺少self。 其余的事情都很好。 尝试一下。