Hudson + JUnit + встроенный GlassFish, как обеспечить настройку домена? - PullRequest
0 голосов
/ 15 сентября 2010

Я использую NetBeans и GlassFish 3.0.1 для создания приложения EJB3.Я написал несколько модульных тестов, которые запускаются через JUnit и используют встроенный GlassFish.Всякий раз, когда я запускаю эти тесты на моей машине для разработки (например, в NetBeans), все это хорошо.

Теперь я хотел бы позволить Хадсону проводить эти тесты.В настоящий момент происходит сбой при сбое поиска ресурса (в данном случае источника данных в блок персистентности JPA):

[junit] SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
[junit] java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'mvs_devel' in SerialContext

После поиска и попытки узнать об этом, я думаю, это связано свстроенный GlassFish не был настроен с ресурсами.Другими словами, отсутствует файл domain.xml.Правильно?

Два вопроса:

  1. Почему это работает с NetBeans на моем компьютере разработчика?Какую магию делает NetBeans в фоновом режиме?
  2. Как мне предоставить файл?Откуда его ожидает встроенный GlassFish в Hudson-box?

Hudson использует те же скрипты Ant сборки (созданные NetBeans).

Я прочитал этот пост об instanceRoot и EmbeddedFileSystemBuilder, но я не понимаю этого достаточно.Это необходимо для каждого TestCase (Emb. GF запускается / останавливается для каждого тестируемого компонента)?Является ли эта часть EJBContainer.createEJBContainer ()?Опять же, почему нет необходимости делать это при запуске тестов в NetBeans?

Обновление Следуя совету Питера, я могу подтвердить: при запуске ant на только что извлеченной копии кодате же свойства, что и для hudson, тесты выполняются!

1 Ответ

1 голос
/ 15 сентября 2010

10-1 это проблема пути к классам, поскольку IDE, как правило, меняют пути в зависимости от того, работаете ли вы нормально или юнит-тесты.

Попробуйте запустить тесты из командной строки из только что извлеченной версии из своего SCM. Скорее всего, у вас будет та же ошибка. Отладка на вашем локальном компьютере намного проще, чем на удаленном.

Когда он надежно строится в командной строке (в отдельном каталоге), тогда пора перейти к Hudson.

...