Найти - Пользователи
Полная версия: doctest. Многострочники с настройками.
Начало » Python для новичков » doctest. Многострочники с настройками.
1
Kogrom
Вопрос по doctest: можно ли его научить корректно работать с многострочниками, в которых есть настройки?
Попытаюсь объяснить на примерах.

Простой случай:
"""
>>> a = 1
>>> b = 2
>>> print a + b
3
"""
import doctest
doctest.testmod(verbose=True)
По смыслу тут один тест (остальное - приготовления, настройки), но doctest проверяет каждую строчку и потому сообщает о том, что пройдено 3 теста.

Настройки можно вынести наружу.
"""
>>> print a + b
3
"""
a = 1
b = 2
import doctest
doctest.testmod(verbose=True)
Теперь выявляется один тест, но во первых, мне не нужны эти переменные в глобальном пространстве, во вторых некрасиво то, что последовательность операций вывернута.
Про юнит-тесты знаю, но стало интересно, что можно выжать из doctest.
Kogrom
Пока только такой вариант прошел:
"""
>>> a = 1; b = 2; print a + b
3
"""
import doctest
doctest.testmod(verbose=True)
Некрасиво, но по смыслу правильно. Пробовал с флагами баловаться - пока не вышло.
Kogrom
Вроде бы подобрал приемлемый вариант.

def test_func():
"""
>>> test_func()
3
1
"""
a = 1
b = 2
print a + b
print b - a

import doctest
doctest.testmod(verbose=True)
Спасибо за внимание.
Zubchick
мне кажется вы не поравильно применяете доктест
Kogrom
Zubchick
мне кажется вы не правильно применяете доктест
Не очень информативное сообщение. Можно подробнее?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB