Jenkins не может подключиться к базе данных во время модульного теста после сборки - PullRequest
0 голосов
/ 07 декабря 2011

Я перевожу свою сборку муравьев на новый сервер Jenkins.Он может получить доступ к SVN, компилировать и все такое.Все отлично, пока не запускаются юнит-тесты.Для выполнения некоторых тестов необходим доступ к базе данных.

Я вошел на сервер, с которого работает Jenkins, и, используя telnet на порте базы данных, я могу сказать, что путьоткрыть.(ИТ-ребята также говорят, что путь открыт).Я знаю, что это проблема с базой данных, потому что я могу воспроизвести проблему локально, когда я испортил конфигурационный файл, поэтому сборка не может найти базу данных.

Моя проблема заключается в следующем.Мне действительно нужно, чтобы Дженкинс сказал мне, почему он не может подключиться к базе данных.Я не смог понять, как это сделать.Вывод на консоль просто показывает, что он пытался пройти тест навсегда.Любые и все предложения приветствуются.

1 Ответ

0 голосов
/ 08 декабря 2011

Передаете ли вы параметры БД из Ant в цель junit? Если это так, добавьте параметр -v к шагу сборки ant в конфигурации jenkins, чтобы получить дополнительную запись в журнал и, следовательно, посмотреть, какие параметры БД устанавливаются.

В качестве альтернативы, ваши тесты сами загружают параметры БД? В зависимости от того, как они читаются, у вас может быть проблема с classpath или path. В этом случае зарегистрируйте путь, путь к классу и любые другие соответствующие переменные в своем тесте.

Имейте в виду, что задача junit имеет параметр timeout, который вы можете установить, если не хотите, чтобы она зависала вечно.

Наконец, вы можете войти на хост jenkins и запустить дамп потока из выполняемого теста. Это можно сделать, отправив сигнал kill -3 процессу java (на * nix) или, если вы запускаете jenkins в Windows, а ваша JVM не слишком старая, вы можете выполнить jstack . Полученная трассировка стека (которая должна появиться в журнале сборки Jenkins) может привести к некоторому пониманию.

...