Python Glossary English

все Python 3doctestпонятие

doctest.DebugRunner

отладка

Вариант DocTestRunner, который на первом провале не пишет отчёт, а бросает исключение — для отладки post-mortem.

Синтаксис

doctest.DebugRunner(checker=None, verbose=None, optionflags=0).run(test)

Неверный вывод даёт DocTestFailure, исключение внутри примера — UnexpectedException; остальные примеры уже не выполняются. Пространство имён после провала не очищается, так что в отладчике видны переменные. Именно его использует метод debug() у доктестов из DocTestSuite.

Примеры

import doctest
test = doctest.DocTestParser().get_doctest(">>> x = 1\n>>> x + 1\n3\n>>> x\n1\n", {}, "t", None, 0)
try:
    doctest.DebugRunner(verbose=False).run(test)
except doctest.DocTestFailure as e:
    print(e.example.source.strip(), "->", e.got.strip())  # → x + 1 -> 2
    print(e.test.globs["x"])  # → 1 — пространство имён не очищено

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности