Выполнение конкретных файловых тестов в рабочем процессе Git, Gerrit, Jenkins.

SCM — Git, CI — Дженкинс

Я настроил рабочий процесс Git, Gerrit & Jenkins и настроил пакет автоматизации на ведомом устройстве jenkins.

Я могу запустить пакет TestNG на подчиненной машине после того, как на Gerrit будет создан набор исправлений.

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

например. Если login.jsp отправлен, следует выполнить тесты входа, а не полный набор тестов.

Любые советы о том, как этого можно достичь? Направление, в котором я сейчас думаю: Есть ли способ уведомить ведомое устройство об имени отправленного файла?


person Archit    schedule 07.04.2014    source источник
comment
Любопытный; зачем тебе это? Разве цель jenkins не в том, чтобы построить весь проект, чтобы вы знали, что он все еще работает даже с вашими новыми изменениями?   -  person Tim    schedule 07.04.2014
comment
Я думаю, вам придется вызвать скрипт, который анализирует Changelog.xml для пути, а затем вызовет вашу новую сборку с http://server/job/myjobname/buildWithParameters?PARM1=Value1&PARM2=Value2 ... Звучит как много работы   -  person Cole9350    schedule 07.04.2014
comment
Да, это дублирующий вопрос. Пришлось переспрашивать, так как раньше не обсуждалось. (Мне бы хотелось узнать альтернативный способ повторной публикации вопроса). Теперь, что касается любопытства, весь набор тестов может выполняться в течение 3-4 часов. Случай. Я не хочу запускать полный набор после незначительных изменений на странице входа.   -  person Archit    schedule 08.04.2014
comment
@ Cole9350 - Было бы очень полезно, если бы вы могли немного подробнее рассказать о предложении, которое вы изложили. Надеюсь, мои намерения ясны... Заранее спасибо   -  person Archit    schedule 08.04.2014


Ответы (1)


Вы можете использовать Git, чтобы найти файлы, измененные тестируемым коммитом (или файлы, измененные по сравнению с верхушкой ветки, в зависимости от того, что наиболее подходит). Например,

git diff-tree -r --name-only HEAD~1 HEAD

перечисляет пути файлов, измененных в текущей извлеченной фиксации.

person Magnus Bäck    schedule 11.04.2014