Я пытаюсь разобрать вывод из модуля Python doctest и сохранить его в файле HTML.
У меня есть вывод, похожий на этот:
**********************************************************************
File "example.py", line 16, in __main__.factorial
Failed example:
[factorial(n) for n in range(6)]
Expected:
[0, 1, 2, 6, 24, 120]
Got:
[1, 1, 2, 6, 24, 120]
**********************************************************************
File "example.py", line 20, in __main__.factorial
Failed example:
factorial(30)
Expected:
25252859812191058636308480000000L
Got:
265252859812191058636308480000000L
**********************************************************************
1 items had failures:
2 of 8 in __main__.factorial
***Test Failed*** 2 failures.
Каждой ошибке предшествует строка звездочек, которые отделяют каждую ошибку теста друг от друга.
То, что я хотел бы сделать, это удалить имя файла и метод, который дал сбой, а также ожидаемые и фактические результаты. Затем я хотел бы создать HTML-документ, используя это (или сохранить его в текстовом файле, а затем выполнить второй раунд анализа).
Как я могу сделать это, используя только Python или некоторую комбинацию утилит оболочки UNIX?
РЕДАКТИРОВАТЬ: я сформулировал следующий сценарий оболочки, который соответствует каждому блоку, как я хотел бы, но я не уверен, как перенаправить каждое соответствие sed в свой собственный файл.
python example.py | sed -n '/.*/,/^\**$/p' > `mktemp error.XXX`