Python Glossary English

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

doctest.testmod()

запуск тестов

Находит в докстрингах модуля примеры >>> и проверяет, что вывод совпадает с записанным. Возвращает TestResults(failed, attempted).

Синтаксис

doctest.testmod(m=None, name=None, globs=None, verbose=None, report=True, optionflags=0)

Вывод сравнивается как текст, буквально: лишний пробел, другой порядок элементов множества или адрес объекта <... at 0x7f...> — уже провал. Для изменчивых частей есть директивы # doctest: +ELLIPSIS (... совпадает с чем угодно) и +NORMALIZE_WHITESPACE. При успехе testmod() ничего не печатает — тишина и есть зелёный результат; подробности даёт verbose=True.

Примеры

import doctest
def square(x):
    """
    >>> square(3)
    9
    >>> object()  # doctest: +ELLIPSIS
    <object object at 0x...>
    >>> print("a    b")  # doctest: +NORMALIZE_WHITESPACE
    a b
    >>> sorted({"b", "a"})
    ['a', 'b']
    """
    return x * x
print(doctest.testmod())  # → TestResults(failed=0, attempted=4)
import doctest
def half(x):
    """
    >>> half(5)
    2.5
    >>> half(4)
    2
    """
    return x / 2
print(doctest.testmod())  # → TestResults(failed=1, attempted=2) — half(4) печатает 2.0

См. также

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