Возможно ли вставить картинку (некоторой функции) в отчет unittest-а?
Для моей задачи очень полезно для отладки представить данные графически. Сейчас, в случае провала сравнения, по специальному флагу командной строки, я показываю окно pyplot-а. Однако, при автоматическом прогоне тестов эти картинки, понятно, никуда не попадут, а хотелось бы их увидеть.
Для форматирования вывода тестов я сейчас использую HTMLTestRunner, но готов рассмотреть и другие runer-ы, если это упростит поставленную задачу.
В оригинальной структуре объектов unittest-а, не предусмотрен отдельный канал для текстовых сообщений. Все HTML-run-ы перехватывают вывод программы в стандартные потоки вывода и печатают соответствующий текст в HTML. Отдельным потоком вывода для форматированного текста никто не занимается. Т.е. легального способа добавить html-узел в отчет - нет.
Однако, выход есть:
nose, в отличии от других движков, не экранирует специальные символы в тексте отпечатанном внутри тест-кейса, а просто помещает текст внутрь <pre>...</pre>. Таким образом, можно вставить картинку в отчет просто написав:
print( '<img src="{src}"/>'.format( src=path_to_svg ) )
Что, конечно, является эксплуатацией бага, но работает.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости