Хадсон проводит некоторые тесты, но не другие - PullRequest
0 голосов
/ 05 августа 2011

У меня есть Java-проект, управляемый Maven, который включает в себя тесты JUnit - ничего необычного. Недавно на моей машине начали ломаться сборки, но Хадсон остался доволен. Я понял, что внес изменение, которое нарушило юнит-тестирование, но заметил, что Хадсон не запускал юнит-тест. Большинство моих тестов прошло нормально, но все в одном из моих пакетов полностью отсутствовало. Не указан как пропущенный, но на самом деле отсутствует .

Так вот, я не настраивал этот экземпляр Хадсона, и я не гуру, поэтому я не был уверен, с чего начать. Без определенного порядка:

  • Я посмотрел страницу настроек проекта, скопировал точную используемую командную строку Maven и запустил ее локально. В POM есть некоторые специфичные для Hudson настройки профиля, поэтому я подумал, что это стоит попробовать. Пропущенные тесты все еще выполняются (и не проходят).
  • Я попытался посмотреть на старые казни, чтобы узнать, не было ли это недавним изменением. К сожалению, у нас осталось только 5 старых сборок, так что тупик там.
  • Я тщательно проверил POM, чтобы выяснить, не может ли что-нибудь заставить его исключить тесты - не Maven genius , но я могу с уверенностью сказать, что ничего не должно быть, и в любом случае это не должно ' не имеет значения из-за пули # 1
  • Я скачал рабочее пространство Гудзона. Интересно, что в /target есть каталог test-classes, в котором есть .class файлы для всех отсутствующих тестов, но /target/surefire-reports не имеет соответствующих выходных файлов

Я чувствую, что, должно быть, мне не хватает какой-то установки где-то , или, по крайней мере, какого-то файла журнала, который бы указывал, как это происходит - возможно, тесты не пройдены , поэтому плохо, чтобы уничтожить процесс Surefire, который вызвал их, прежде чем он сможет написать о сбое? - но, как я уже сказал, Хадсон Ньюб. Каким должен быть мой следующий ход?


ОБНОВЛЕНИЕ: Установил Jenkins локально и попытался воспроизвести. Я схожу с ума: по-прежнему не удается выполнить довольно много тестов, даже если я сам вхожу в систему, перехожу в рабочее пространство Jenkins и собираю

  • под своей учетной записью
  • используя мой собственный локальный репозиторий m2 (с сетевого диска)
  • с использованием тех же двоичных файлов Maven / Java (с сетевого диска)
  • под управлением той же ОС

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

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

У меня была именно эта проблема, и я готов поспорить, что некоторые из ваших тестов не соответствовали стандартному соглашению об именах;* Test.java.Surefire по умолчанию выбирает только те тесты, которые соответствуют определенному соглашению об именах;http://maven.apache.org/plugins/maven-surefire-plugin/examples/inclusion-exclusion.html

0 голосов
/ 24 сентября 2011

Я почти уверен, что это не вина Хадсона , и даже не строго вина Мейвена. Я думаю, что это ошибка JUnit, и я буду преследовать ее в этом другом вопросе.

...