Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

robotframework повторный запуск провалившихся тестов и вывод результатов в xunit

xunit
robot-framework
reporting
Теги: #<Tag:0x00007fedbbaa4ff0> #<Tag:0x00007fedbbaa4e38> #<Tag:0x00007fedbbaa4cd0>

(Dmtry) #1

Добрый день.
У робота есть возможность повторно запустить упавшие тесты и сделать слияние результата с первым прогоном.
Но как получить в результате xunit совместимый отчет именно после слияния ?

я пробовал стороннюю библиотеку xunitmerge, она делает слияние, но не так как задумано, xunitmerge подходит для слияния нескольких разных прогонов в один, он просто склеивает 2 отчета в один.

Хотелось бы получить итоговый результат как это делает робот со своими отчетами, если в первый прогон тест завершился неудачей и если второй прогон этого теста успешен, то в результирующем отчете будет успех по этому тесту. Это можно сделать нативными методами робота, может быть параметрами дополнительно как то надо указывать что то при формировании отчетов?

Сейчас я запускаю вот так

robot --output original.xml -x xunit1.xml keyword_driven.robot
robot --rerunfailed original.xml --output rerun.xml -x xunit2.xml keyword_driven.robot
rebot --merge original.xml rerun.xml

(Ray Romanov) #2

Честно говоря, а зачем отчет по первому прогону, важен то конечный т.е. второй, в котором будут реально упавшие тесты (как я понял это из-за нестабильности UI тестов).


(Dmtry) #3

тут такая штука что первый прогон может завершится успешно, тогда второй и третий шаг не нужен. Да, из за не стабильности некоторых сценариев.
В общем удалось это сделать все средствами робота объединение. я не с той стороны параметр подсовывал.

robot -x xunitreport.xml --xunitskipnoncritical keyword_driven.robot
if [ $? -ne 0 ]; then
    echo "rerun filed tests starting..."
    robot --rerunfailed output.xml --output rerun.xml keyword_driven.robot
    rebot -x xunit_rerun.xml --xunitskipnoncritical -R output.xml rerun.xml
fi