Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2011 11:17:04

Kogrom
От:
Зарегистрирован: 2009-12-03
Сообщения: 160
Репутация: +  0  -
Профиль   Отправить e-mail  

doctest. Многострочники с настройками.

Вопрос по 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.



Офлайн

#2 Янв. 19, 2011 11:36:06

Kogrom
От:
Зарегистрирован: 2009-12-03
Сообщения: 160
Репутация: +  0  -
Профиль   Отправить e-mail  

doctest. Многострочники с настройками.

Пока только такой вариант прошел:

"""
>>> a = 1; b = 2; print a + b
3
"""
import doctest
doctest.testmod(verbose=True)
Некрасиво, но по смыслу правильно. Пробовал с флагами баловаться - пока не вышло.



Офлайн

#3 Янв. 19, 2011 12:00:14

Kogrom
От:
Зарегистрирован: 2009-12-03
Сообщения: 160
Репутация: +  0  -
Профиль   Отправить e-mail  

doctest. Многострочники с настройками.

Вроде бы подобрал приемлемый вариант.

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

import doctest
doctest.testmod(verbose=True)
Спасибо за внимание.



Офлайн

#4 Янв. 19, 2011 13:48:07

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

doctest. Многострочники с настройками.

мне кажется вы не поравильно применяете доктест



Офлайн

#5 Янв. 19, 2011 15:12:26

Kogrom
От:
Зарегистрирован: 2009-12-03
Сообщения: 160
Репутация: +  0  -
Профиль   Отправить e-mail  

doctest. Многострочники с настройками.

Zubchick
мне кажется вы не правильно применяете доктест
Не очень информативное сообщение. Можно подробнее?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version