Python Glossary English

все Python 3doctestфункция

doctest.DocTestSuite()

интеграция с unittest

Собирает доктесты модуля в unittest.TestSuite, чтобы гонять их вместе с обычными тестами через unittest или pytest.

Синтаксис

doctest.DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None, setUp=None, tearDown=None, optionflags=0)

Каждый докстринг становится одним тест-кейсом, поэтому testsRun считает докстринги, а не отдельные >>>. Без аргумента берётся вызывающий модуль. Модуль без доктестов даёт пустой набор, а не ValueError, как до 3.5, — ошибку в пути к модулю так не заметить. Подключают через протокол load_tests.

Примеры

import doctest, io, unittest
def inc(x):
    """
    >>> inc(1)
    2
    >>> inc(-1)
    0
    """
    return x + 1
suite = doctest.DocTestSuite()
result = unittest.TextTestRunner(stream=io.StringIO()).run(suite)
print(result.testsRun, result.wasSuccessful())  # → 1 True — один докстринг, два примера

См. также

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