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