2010-05-16 3 views
0

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

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

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

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

ответ

0

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

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

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

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

Смежные вопросы