Beantwortung von Fragen zum Thema „Wie können wir die ganze Zeile ignorieren“: ja, die Tatsache, dass“... "Sieht auch nach einer Fortsetzung aus, macht es schwer, die gesamte Ausgabe zu ignorieren. Sie können "#doctest: + SKIP" verwenden, wenn Sie nur das Beispiel vollständig überspringen möchten, aber das wird nicht funktionieren, wenn Sie sich auf seine Nebenwirkungen verlassen. Wenn Sie wirklich Notwendigkeit, dies zu tun, nehme ich an konnte man Affen Patch das doctest Modul selbst, obwohl ich nicht besonders es empfehlen würde: (. Dieser Test bestanden)
>>> import doctest
>>> doctest.ELLIPSIS_MARKER = '-etc-'
>>> print 12 # doctest: +ELLIPSIS
-etc-
Oder Sie könnte vorübergehend stdout und/oder stderr unterdrücken: (. dieser Test geht auch)
>>> # 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__
Aber wie können wir die ganze Linie ignorieren? –
@ t0ster, setzen Sie einfach '...' als die gesamte "erwartete Ausgabe" (wobei 'doctest.ELLIPSIS' natürlich gesetzt ist), und doctest akzeptiert jeden Inhalt dieser Ausgabezeile, d. H."Ignoriere die ganze Zeile" der Ausgabe. –
"Ignoriere die ganze Zeile" wie oben, funktioniert nicht, da doctest die Ellipse mit einer (Python) Fortsetzung der vorherigen Zeile verwechselt. Ich konnte keine Möglichkeit finden, die ganze Linie zu ignorieren. Eigentlich wollte ich "den gesamten Output ignorieren". –