Как остановить Python unittest от печати тестовой docstring?
Я заметил, что, когда мои тестовые тесты Python содержат документацию в верхней части функции, иногда структура печатает их в тестовом выпуске. Обычно тестовый вывод содержит один тест на строку:
<test name> ... ok
Если у теста есть docstring формы
"""
test that so and so happens
"""
чем все хорошо. Но если в тесте есть docstring все в одной строке:
"""test that so and so happens"""
тогда тестовый вывод принимает более одной строки и включает в себя такой документ:
<test name>
test that so and so happens ... ok
Я не могу найти, где это задокументированное поведение. Есть ли способ отключить это?
Ответы
Ответ 1
Используется первая строка docstring; ответственный метод TestCase.shortDescription()
, который вы можете переопределить в своих тестовых окнах:
class MyTests(unittest.TestCase):
# ....
def shortDescription(self):
return None
Всегда возвращая None
, вы полностью отключите эту функцию. Если вы хотите форматировать docstring по-разному, он доступен как self._testMethodDoc
.
Ответ 2
После прочтения этого я сделал плагин для носетов, чтобы избежать шаблона.
https://github.com/MarechJ/nosenodocstrings