Иногда бывает полезно запустить только первую часть большого файла доктрины.Как завершить файл-релиз python 2 в середине?
Существует много ситуаций, когда первая часть ломается после изменения кода, я хотел бы запустить только первую часть, пока она не пройдет, а затем снова запустите весь файл.
Я еще не нашел простой способ сделать это.
Скажем, я начинаю с doctests с этим файлом:
#!/usr/bin/env python
import doctest
doctest.testfile("scenario.rst")
И scenario.rst выглядит следующим образом:
>>> 'hello world'
'hello world'
>>> exit()
>>> 'this should not be processed anymore'
... lots of lines
>>> 'this should also not be processed'
В этом примере я использую функцию выхода(), чтобы продемонстрировать, что Я имею в виду, что это не работает, потому что это рассматривается как исключение, которое доктрино счастливо видит как часть чего-то, что он может проверить:
**********************************************************************
File "_scenario.rst", line 10, in _scenario.rst
Failed example:
exit()
Exception raised:
Traceback (most recent call last):
File "c:\Python27\lib\doctest.py", line 1254, in __run
compileflags, 1) in test.globs
File "<doctest _scenario.rst[1]>", line 1, in <module>
exit()
File "c:\Python27\lib\site.py", line 372, in __call__
raise SystemExit(code)
SystemExit: None
**********************************************************************
File "_scenario.rst", line 12, in _scenario.rst
Failed example:
'this should not be processed anymore'
Expected nothing
Got:
'this should not be processed anymore'
**********************************************************************
1 items had failures:
2 of 3 in _scenario.rst
***Test Failed*** 2 failures.
Итак, как можно завершить такой файл досье в середине?
EDIT: есть директива + SKIP, но она пропускает только одну строку. Мне нужно что-то, что пропускает остальную часть файла.
спасибо. Итак, согласно исходному файлу по адресу http: //hg.python.org/cpython/file/ab05e7dd2788/Lib/doctest.py # l1286 это единственное исключение, которое останавливает доктрину. – mit
Поведение может быть неопределенным при мигании – jalanb