Вывод консоли py.test в Jenkins
Вывод консоли Jenkins из заданий, выполняющих тесты py.test, содержит неожиданные символы "[1m" "[0m", как
[1m============== test session starts ==============[0m
По-видимому, эти символы являются остатками выходного форматирования py.test ("начало сеанса тестирования" отображается жирным шрифтом и окрашивается в окне терминала). Есть ли способ отключить форматирование вывода? Параметра py.test "--color no" недостаточно.
0 ответов
В моем случае я запускаю pytest внутри докера, подавая в суд на описательный конвейер Jenkins, поэтому нужно проверить несколько вещей:
Сначала добавьте ansiColor
к options
pipeline {
...
options {
ansiColor('xterm')
...
}
...
}
Во-вторых, убедитесь, что вы добавили docker run
командовать флагом -t
-t: выделить псевдотерминал
для docker-compose это tty: true
В-третьих, вы можете принудительно раскрасить, добавив --color=yes
к команде pytest
python -m pytest --color=yes ...
--color= цвет вывода цветного терминала (да / нет / авто).
Установите плагин AnsiColor в Jenkins. В его панели конфигурации появится новый пункт "Ansi Color" с картой цветов xterm.
Ваш конвейер должен содержать что-то вроде:
stage('Pytest'){ wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'xterm']) { sh """ source ./$PYTHON3_ENV_NAME/bin/activate # Execute tests python3 -m pytest test_cases/${TEST_FILTER} --color=yes .... """ } }
Во время запуска вы должны увидеть цвета для этапа pytest.
Если вы видите форматирование цвета bash, но не цвета, нажмите F5 в браузере!
Риккардо