Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Настройка stderr в xml для автотестов.


(Andrey Kim) #1

Добрый всем день.
Пишу тесты на python и unitttest.
После их прохождения xmlrunner генерит xml-ки для каждого тест-класса

Для лучшего распознования бага, я генерирую скриншоты и делаю
sys.stderr.write, чтобы в xml выписывалась локация этого скрина.

Сейчас есть проблема в которой я застопорился.
Если запускать тесты только одного класса, то все stderr пишутся нормально в одну xml

Но если запускать все тесты, а штук 15 разных классов, то каждый xml каждого класса будет содержать в себе stderr от всех предыдущих. Подскажите как лучше это сделать?

Xmlrunner гонит тесты так:

tests = unittest.defaultTestLoader.discover(path, pattern=case)
xml_runner = xmlrunner.XMLTestRunner(verbosity=2, output='test-results')
xml_runner.run(tests)

stderr пишется сразу после фэйла любого теста, прямо перед тем как создается скриншот.


(Mykhailo Poliarush) #2

Ну тут надо в исходники лезть и править собственными силами. Я думаю, где-то в какой-то момент нужно зачищать тестовые результаты после их выгрузки в xml файл.

https://github.com/lamby/pkg-python-xmlrunner/blob/master/src/xmlrunner/init.py

Нужно смотреть в методы generate_reports и _report_output. Увы нет времени самому разобраться и сразу выдать работающий вариант. Может быть у вас получиться самому починить.