Python unittest,如何在报告中显示TestCase的方法'docstring?

时间:2015-07-12 13:29:02

标签: python python-unittest

问题标题是自我解释。 有没有办法

class Foo(TestCase):
  def test_bar(self):
    """
    a docstring
    """

使UnitTest报告显示整个文档字符串?

我已经读过将打印文档字符串的第一行(所以写

""" a docstring """

没有换行符)

我读过这个问题:How to stop Python unittest from printing test docstring?

但是,它是关于删除文档字符串,我不知道如何覆盖shortDescription()以显示完整的文档字符串。

1 个答案:

答案 0 :(得分:3)

我没试过这个

the answerSO-linked question,它说

  

负责任的方法是TestCase.shortDescription(),你可以   在你的测试用例中覆盖。

source of shortDescription如下:

doc = self._testMethodDoc 
return doc and doc.split("\n")[0].strip() or None

所以你可以将第二行修改为

return doc

产生

class MyTests(unittest.TestCase):
    #  ....
    def shortDescription(self):
        doc = self._testMethodDoc 
        return doc

如果您反对使用未记录的self._testMethodDoc,则它是testMethod.__doc__的直接副本,该副本在TestCase.__init__()中通过

创建
testMethod = getattr(self, methodName)

TestCase的变量非常少。他们被重命名的可能性很小,但你可能会问作者(来自消息来源):

 47  __author__ = "Steve Purcell" 
 48  __email__ = "stephen_purcell at yahoo dot com"