Как завершить файл doctest python 2 в середине?

Иногда может быть полезно запустить только первую часть большого файла doctests.

Есть много ситуаций, когда первая часть ломается после изменения кода, хотелось бы запустить только первую часть, пока не пройдет, а потом снова запустить весь файл.

Я еще не мог найти простой способ сделать это.

Допустим, я запускаю свои доктесты с этим файлом:

#!/usr/bin/env python
import doctest
doctest.testfile("scenario.rst")

И script.rst выглядит так:

>>> 'hello world'
'hello world'

>>> exit()

>>> 'this should not be processed anymore'

... lots of lines

>>> 'this should also not be processed'

В этом примере я использую функцию exit(), чтобы продемонстрировать, что я имею в виду, конечно, это не работает , потому что он рассматривается как исключение, которое doctest с радостью рассматривает как часть чего-то, что он может протестировать:

**********************************************************************
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.

Так как же такой файл doctest может быть прерван в середине?

EDIT: есть директива +SKIP, но она пропускает только одну строку. Мне нужно что-то, что пропускает остальную часть файла.

5
задан mit 19 March 2012 в 17:14
поделиться