Đối phó với những câu hỏi về "làm thế nào chúng ta có thể bỏ qua toàn bộ dòng": yes, thực tế là" ... "cũng giống như một sự tiếp tục như làm cho nó khó để bỏ qua toàn bộ đầu ra. Bạn có thể sử dụng "#doctest: + SKIP" nếu bạn chỉ muốn bỏ qua hoàn toàn ví dụ, nhưng điều đó sẽ không hoạt động nếu bạn đang dựa vào các tác dụng phụ của nó. Nếu bạn thực sự cần phải làm điều này, tôi cho rằng bạn có thể khỉ vá các mô-đun doctest bản thân, mặc dù tôi sẽ không đặc biệt khuyên nó: (. Kiểm tra này đi)
>>> import doctest
>>> doctest.ELLIPSIS_MARKER = '-etc-'
>>> print 12 # doctest: +ELLIPSIS
-etc-
Hoặc bạn tạm thời có thể ngăn chặn stdout và/hoặc stderr: (. kiểm tra này cũng đi)
>>> # 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__
Nguồn
2012-02-22 18:33:27
Nhưng làm cách nào chúng tôi có thể bỏ qua toàn bộ dòng? –
@ t0ster, chỉ cần đặt '...' làm toàn bộ "đầu ra dự kiến" (với tập hợp 'doctest.ELLIPSIS', dĩ nhiên) và doctest sẽ chấp nhận bất kỳ nội dung nào trên dòng đầu ra đó, tức là"bỏ qua toàn bộ dòng" của đầu ra. –
"bỏ qua toàn bộ dòng" như trên không hoạt động vì doctest gây nhầm lẫn với dấu chấm lửng với sự tiếp nối (python) của dòng trước đó. Tôi không thể tìm thấy bất kỳ cách nào để bỏ qua toàn bộ dòng. Trên thực tế, tôi đã tìm kiếm "bỏ qua toàn bộ đầu ra". –