Python unittest, как отобразить строку документации методов TestCase в отчете?

Название вопроса самоочевидно. Есть ли способ для

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

сделать UnitTest отчет отображать всю строку документации?

Я читал, что будет напечатана первая строка строки документации (поэтому написание

""" a docstring """

без разрывов строк работает)

Я прочитал вопрос: как остановить Python unittest от печати тестовой строки документации?

Тем не менее, речь идет об удалении строки документации, и я не знаю, как переопределить shortDescription() показать полную строку документации.

1 ответ

Решение

(Я не пробовал это)

В ответе на вопрос, связанный с SO, говорится:

ответственный метод TestCase.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" 
Другие вопросы по тегам