Дженкинс: связь между Stacktrace и GitLab

Мы используем Jenkins и GitLab в нашей компании. Мы используем py.test для создания вывода XML для Jenkins, который обрабатывается плагином jUnit Jenkins.

Трассировки стека исключений до сих пор являются чистыми ascii. Было бы здорово, если бы мы могли каким-то образом подключиться к Jenkins и показывать гиперссылки на наш сервер gitlab вместо блока html pre.

В нашем случае нам было бы достаточно отфильтровать каждую строку тестового вывода и использовать для нее регулярное выражение....

Пример вывода плагина Jenkins jUnit:

File "/home/modwork_ems_d66/src/foo/foo/utils/testutils.py", line 975, in wrapped
    return fn(*args, **kwargs)
File "/home/modwork_ems_d66/src/foo/foo/tests/FooTest.py", line 641, in test_empty_models_if_unused
    models))

Мне нужна гиперссылка на сервер, на котором размещен репозиторий git "foo". В нашем случае это будет "https://source/repos/foo/files/master/foo/foo/tests/FooTest.py"

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

Вот скриншот, чтобы визуализировать это введите здесь описание изображения

Я хочу эту ссылку на TestReport одного теста. Шаблон URL этих страниц:

https://jenkins/job/ci_foo_bar/lastCompletedBuild/testReport/src.myapp.myapp.tests.test_tree/TestCase/test_something/

person guettli    schedule 25.11.2013    source источник


Ответы (1)


Если вы можете получить вывод исключений после процесса тестирования, вы можете реализовать синтаксический анализатор, который подготовит для вас простой отчет в формате html в качестве шага сборки.

Простейшим способом вы можете реализовать только регулярное выражение с помощью sed, например

sed -e 's@"/home/modwork_ems_d66/src\(.*\?\)"@<a href="https://source/repos/foo/files/master\1">\1</a>@' exceptions.txt

который работает с файлом исключений.

person ScayTrase    schedule 15.01.2014
comment
Я знаю, как делать регулярные выражения. Вопрос в том, где подключить это к jenkins. - person guettli; 05.04.2016
comment
Это ответ - вы можете подготовить html-отчет с этими ссылками. И опубликуйте его так, как вам нравится. То есть с wiki.jenkins-ci.org/display/JENKINS/HTML+ Издатель+плагин - person ScayTrase; 05.04.2016
comment
@ScyTrase: со страницы плагина: плагин HtmlPublisher полезен для публикации HTML-отчетов, которые создает ваша сборка, на страницах задания и сборки. Я предполагаю, что этот плагин не может создать HTML-вывод TestReport одной страницы. Я обновил вопрос. - person guettli; 05.04.2016
comment
Позвольте мне уточнить. Вы хотите подключиться к рендерингу отчета, созданного сторонним плагином? - person ScayTrase; 05.04.2016
comment
Если да - также укажите имя этого плагина - person ScayTrase; 05.04.2016
comment
извините, я новичок в Дженкинсе. Да, я хочу изменить вывод плагина: jUnit. Это плагин, который показывает трассировку стека. - person guettli; 05.04.2016
comment
Как только ‹pre/› будет жестко закодировано в шаблоне (см. github.com/jenkinsci/junit-plugin/blob/master/src/main/), я думаю, что это невозможно быстро. Варианты: переопределить плагин (создать собственный поверх него), предложить патч гибкости для плагина (трудно представить) или использовать другой плагин для рендеринга трассировки стека. - person ScayTrase; 05.04.2016
comment
@guettli, вы можете попробовать подключить это регулярное выражение в действии после сборки. - person Manish Singh; 12.04.2016