Подтвердить что ты не робот

Проблемы с "Агрегатом результатов теста ниже по течению" в Хадсоне

Проекты My Hudson, похоже, не собирают итоговые результаты тестирования, и мне интересно, пропустил ли я какой-нибудь шаг конфигурации. У меня есть два проекта: Foo и Foo-Tests, оба из которых - фристайл.

В проекте Foo я имею следующую конфигурацию:

  • Проверено "Совокупность результатов теста ниже по течению".
  • Проверено "Автоматически агрегировать все последующие тесты" по предыдущей опции.
  • Проверено "Сборка других проектов" и указано "Foo-Tests" для сборки.

В Foo-Tests проекта у меня есть следующая конфигурация:

  • Отметьте "Опубликовать отчет о результатах теста JUnit" и указали мои XML файлы отчета JUnit.

Когда Foo строит, он строит успешно и правильно запускает сборку Foo-Tests. Сборка Foo-Tests успешна и правильно публикует отчеты JUnit. Однако, когда я ищу агрегированные результаты тестов в Foo, есть ссылка "Последний результат теста (без тестов)" для сборки, которая отправляет мне 404.

Вот что я пробовал, что не решает проблему:

  • Скажите Foo, чтобы "Опубликовать отчет о результатах теста JUnit" без параметров (в проекте Foo нет тестов, только Foo-Tests). Это вызвало ошибку, поскольку в ней не было тестовых файлов для обработки в рамках проекта.
  • Скажите Foo-Tests "Отпечаток всех опубликованных артефактов" без параметров (мне было интересно, рассматривает ли Хадсон отчеты JUnit как артефакты за кулисами). Это вызвало ошибку, так как я явно не определил какие-либо артефакты для публикации.

Я использую Hudson 1.266.

Изменить: Я должен отметить, что я нашел два вопроса в списке рассылки Hudson Users, у которых нет ответов и, возможно, поможет решить эту проблему:

4b9b3361

Ответ 1

Я смог реплицировать вашу проблему с Hudson 1.266. Это ошибка Hudson, которая была исправлена ​​в более поздней версии (до 1.287), поэтому либо обновите Hudson, либо воспользуйтесь этим обходным путем с двумя щелчками мыши: на странице "Проект" сначала перейдите к "Последнему сборку", а затем "Агрегированные результаты тестирования".

Проблема заключается в том, что на странице Project для Foo отображается только последняя ссылка результатов теста, которая имеет URL-адрес, например http://localhost:8080/hudson-1.266/job/Foo/lastBuild/testReport/. Поскольку Foo не имеет собственных тестов, эта ссылка не имеет XML файла JUnit для ссылки и возвращает указанную вами ошибку. Это было исправлено где-то между 1.266 и 1.287 путем перенаправления из latestBuild/testReport/back up to latestBuild/при отсутствии тестов. Альтернативой для вас в 1.266 является, вместо того, чтобы нажимать на "Последние результаты теста" на странице "Проект", немного прокрутите список вниз и нажмите "Последняя сборка" в разделе "Постоянная ссылка". Это приведет вас к последнему сайту/URL-адресу, и оттуда вы можете щелкнуть по агрегированному тестовому результату, который имеет URL-адрес, например http://localhost:8080/hudson-1.266/job/Foo/lastBuild/aggregatedTestReport/. На этой странице все ваши результаты теста из нисходящих проектов будут доступны в разделе Drill Down.

К сожалению, по-прежнему существует проблема с каналами Drill Down, даже в 1.287. Из Foo, когда вы переходите к Foo-Tests, как описано выше, вы попадете на неверный URL-адрес, который выглядит как http://localhost:8080/hudson-1.287job/Foo-Tests/, Вам придется вручную изменить этот URL-адрес, чтобы вставить/между контекстом hudson и последующим путем работы, чтобы он выглядел как http://localhost:8080/ Гудзон-1,287/вакансии/Foo-тесты/. Затем вы сможете увидеть результаты теста ниже по течению.

У меня не было возможности просмотреть источник Хадсона, чтобы найти ошибку, но для этого уже существует проблема. Его issue 1574, и он был открыт почти год.

На стороне примечания, я действительно люблю Хадсона для CI, но их интерфейс не так гладок, как мог бы быть. Я с нетерпением жду их переделки пользовательского интерфейса в ExtJS. Возможно, это то, что они тратят все свое время.

Ответ 2

Мы используем Hudson ver. 1.324 и имели схожие проблемы. Хотя вы упоминаете, что пытались включить отпечатки пальцев, и это не сработало для вас, это было для нас. Мы выполнили следующие инструкции:

http://shotgunsandpenguins.blogspot.com/2009/07/how-to-aggregate-downstream-test.html

Ответ 3

Я исправил недостающую "/" проблему в Hudson 1.288

Ключом к использованию результатов совокупных нисходящих тестов является запуск отпечатка пальца на обоих заданиях. В этом случае это будут "Foo" и "Foo-tests"

Хадсон сопоставляет сборку с последующими тестами путем поиска файлов с одинаковыми отпечатками пальцев. Таким образом, это означает, что ваши отпечатки пальцев должны совпадать. Вид как место преступления.

Ответ 4

два проекта, Foo и Foo-Test, должны знать, что они находятся в одном потоке, поэтому требуется отпечатки пальцев (и, следовательно, архивирование) общего файла.

Мне пришлось выбрать файл, который не изменился между запуском Foo и Foo-Test, и все равно изменился между тем, как они запускаются. для меня это был несвязанный, временный .jar, сгенерированный Foo в пользовательском/общем рабочем пространстве для моих версий Foo и Foo-Test.

i.e., я должен был дать отпечатку пальца Foo и Foo-Test одному и тому же файлу.

после этого, по крайней мере с hudson 1.330, все работает - агрегированные ссылки, развертка и т.д.