2013-07-25 6 views
0

Итак, у меня есть pytest, который запускает мои тесты, и это здорово, но я хочу на самом деле что-то сделать с результатами теста. Я использовал unittest, и это дает мне потрясающий объект результатов, который я могу обработать после запуска тестов. Pytest просто, кажется, дает мне большой текстовый дамп - написание парсера, который звучит умопомрачительно скучно.Обработка результатов испытаний pytest во время выполнения

Как получить результаты во что-то, что я могу использовать? Я должен что-то упустить.

btw - Я запускаю свои тесты, используя pytest.main(), а не через командную строку py.test. Я надеялся иметь какой-то объект результата, с которым я могу взаимодействовать во время выполнения. Я понимаю, что могу записывать результаты на диск, читать с диска, анализировать полученные результаты и затем действовать по результатам - но похоже, что эти операции с дисками - это просто дополнительные шаги, которые я должен избегать.

+1

Вы можете получить форматированные текстовые файлы и файлы xml непосредственно из pytest с флагами '--junitxml = path' или' --resultlog = path'. –

ответ

1

Файлы результатов py.test на самом деле не предназначены для чтения человеком. Я не уверен, есть ли для них сторонний парсер или нет. Они предназначены для чтения сервером непрерывной интеграции, например Hudson или Travis-ci. Как сказал @limelights, вы получаете файлы xml для этих сервисов с флагом --junitxml=path. Подробнее here. или с флагом --resultlog=path. Подробнее here.

+0

Мне действительно не нужен внешний файл. Но я полагаю, что опция junitxml дает мне что-то, что по крайней мере можно использовать. Я надеялся на json или какой-то другой объект python, с которым я мог бы взаимодействовать. – Isaac

+0

У меня есть проект на [github] (https://github.com/cwandrews/tojson), который будет читать в файле и преобразовывать его в json. –

Смежные вопросы