Хадсон результаты на шаг позади - PullRequest
0 голосов
/ 16 мая 2010

Я использую плагин filesytem для Hudson, и когда происходит сборка, он ищет новые / измененные файлы, копирует их в рабочую область, запускает тесты с использованием Rake, а затем публикует эти файлы результатов junit xml.

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

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

Я что-то здесь не так делаю? Есть ли простой способ получить эти результаты Junit xml, отправленные в рабочую область, чтобы пост-сборка «Опубликовать отчет о результатах теста JUnit» фактически работала с вновь созданными файлами XML?

1 Ответ

0 голосов
/ 18 мая 2010

Меня смущает следующее предложение:

Однако обновленные файлы результатов junit xml не переносятся в рабочее пространство до следующей сборки.

Rake создает файл junit.xml? Все описание звучит так: сборка происходит за пределами Гудзона. Сборка создает файл junit.xml, а Хадсон просто берет сборку и файл junit.xml и копирует их в рабочую область для публикации файла junit.xml. Таким образом, hudson обнаруживает изменения до того, как сборка (включая тесты junit) будет завершена, и там будет получена только половина сборки или даже старая сборка. Исправление будет состоять в том, чтобы настроить либо довольно длительный период, чем требует ваша сборка, либо позволить вашей сборке уведомить Хадсона о том, когда нужно запускать грабли. Конфигурация конфигурации будет «Срабатывать триггерами удаленно» вместо опроса SCM. Даже если rake создает файл junit.xml, возможно, что rake фактически работает на старой версии кода, потому что задание rake запускается до того, как станут доступны новые артефакты сборки.

Мое предложение состояло бы в том, чтобы использовать Hudson для компоновки и объединения двух заданий вместе, чтобы задание rake было запущено после завершения задания сборки. Передача необходимых артефактов сборки может осуществляться через хранилище за пределами Гудзона (может быть так же просто, как сетевой ресурс). В этом случае задание на сборку копирует необходимые файлы в репозиторий, а задание на грабли вытягивает его снова. Вы также можете поиграть с функциями архивных артефактов от Hudson. Другим более элегантным вариантом является плагин Clone Workspace SCM , который обрабатывает перенос рабочего пространства в другое задание.

...