все 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Сообщить о неточности