обработка тестов исключений Python doctest - PullRequest
6 голосов
/ 30 августа 2011

У меня есть следующее содержимое в файле с именем test2.txt.

>>> def faulty():  
... yield 5  
... return 7  
Traceback(most recent call last):  
SyntaxError: 'return' with argument inside generator(<doctest test.txt[0]>,line 3)  

. Я запускаю тестовый прогон с python -m test2.txt.Приведенные ниже результаты совершенно не соответствуют моим ожиданиям.

screenshot of terminal output

Я думал, что тест должен быть успешным, поскольку я записал ожидаемый результат в мой файл test2.txt ипочти совпадает с тем, что я получил из вывода консоли.Я пытался добавить 'File "G:\"'.... line?но тест все равно не удался.

1 Ответ

9 голосов
/ 30 августа 2011

doctest очень осторожен с форматом ожидаемых исключений. Вы пропустили пробел:

Traceback(most recent call last): должно быть Traceback (most recent call last):

Более того, это все равно не получится, так как ваше сообщение трассировки слишком специфично (а также имеет неправильный пробел) Используйте флаги ELLIPSIS или IGNORE_EXCEPTION_DETAIL, чтобы сделать doctest менее требовательным к сопоставлению исключений, как показано ниже: * * 1010

(ELLIPSIS также будет работать здесь)

...