Отвечая на вопросы о том, «как мы можем игнорировать всю строку»: да, тот факт, что»... »также выглядит как продолжение, так как трудно игнорировать весь вывод. Вы можете использовать «#doctest: + SKIP», если вы просто хотите полностью пропустить этот пример, но это не сработает, если вы полагаетесь на его побочные эффекты. Если вы действительно нужно сделать это, я полагаю, вы могли бы обезьяна патч doctest сам модуль, хотя я бы не особенно рекомендую: (. Этот тест проходит)
>>> import doctest
>>> doctest.ELLIPSIS_MARKER = '-etc-'
>>> print 12 # doctest: +ELLIPSIS
-etc-
Или вы может временно подавить стандартный вывод и/или STDERR: (. этот тест также проходит)
>>> # Suppress stdout
>>> import sys
>>> class DevNull:
... def noop(*args, **kwargs): pass
... close = write = flush = writelines = noop
>>> sys.stdout = DevNull()
>>> # Run a test and ignore output (but we need its side effects)
>>> print 12 # NOTE: stdout is suppressed!
>>> # Restore stdout
>>> sys.stdout = sys.__stdout__
Но как мы можем игнорировать всю строку? –
@ t0ster, просто поставьте '...' как весь «ожидаемый результат» (с учетом, конечно, 'doctest.ELLIPSIS'), и doctest примет любой контент на этой выходной строке, т. Е.«игнорировать всю строку» вывода. –
«игнорировать всю строку», как указано выше, не работает, так как doctest смущает многоточие с продолжением (python) предыдущей строки. Я не мог найти никакого способа игнорировать всю линию. Фактически, я искал «игнорировать весь результат». –