У меня есть Java-проект, управляемый Maven, который включает в себя тесты JUnit - ничего необычного. Недавно на моей машине начали ломаться сборки, но Хадсон остался доволен. Я понял, что внес изменение, которое нарушило юнит-тестирование, но заметил, что Хадсон не запускал юнит-тест. Большинство моих тестов прошло нормально, но все в одном из моих пакетов полностью отсутствовало. Не указан как пропущенный, но на самом деле отсутствует .
Так вот, я не настраивал этот экземпляр Хадсона, и я не гуру, поэтому я не был уверен, с чего начать. Без определенного порядка:
- Я посмотрел страницу настроек проекта, скопировал точную используемую командную строку Maven и запустил ее локально. В POM есть некоторые специфичные для Hudson настройки профиля, поэтому я подумал, что это стоит попробовать. Пропущенные тесты все еще выполняются (и не проходят).
- Я попытался посмотреть на старые казни, чтобы узнать, не было ли это недавним изменением. К сожалению, у нас осталось только 5 старых сборок, так что тупик там.
- Я тщательно проверил POM, чтобы выяснить, не может ли что-нибудь заставить его исключить тесты - не Maven genius , но я могу с уверенностью сказать, что ничего не должно быть, и в любом случае это не должно ' не имеет значения из-за пули # 1
- Я скачал рабочее пространство Гудзона. Интересно, что в
/target
есть каталог test-classes
, в котором есть .class
файлы для всех отсутствующих тестов, но /target/surefire-reports
не имеет соответствующих выходных файлов
Я чувствую, что, должно быть, мне не хватает какой-то установки где-то , или, по крайней мере, какого-то файла журнала, который бы указывал, как это происходит - возможно, тесты не пройдены , поэтому плохо, чтобы уничтожить процесс Surefire, который вызвал их, прежде чем он сможет написать о сбое? - но, как я уже сказал, Хадсон Ньюб. Каким должен быть мой следующий ход?
ОБНОВЛЕНИЕ: Установил Jenkins локально и попытался воспроизвести. Я схожу с ума: по-прежнему не удается выполнить довольно много тестов, даже если я сам вхожу в систему, перехожу в рабочее пространство Jenkins и собираю
- под своей учетной записью
- используя мой собственный локальный репозиторий m2 (с сетевого диска)
- с использованием тех же двоичных файлов Maven / Java (с сетевого диска)
- под управлением той же ОС
Насколько я могу судить, источник на двух машинах идентичен, моя среда должна быть одинаковой (одна и та же учетная запись) ... Я не могу думать о каких-либо различиях, за исключением, конечно, большого количества тестов. не беги на коробке Дженкинса.