2010-09-15 4 views
0

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

Теперь я хотел бы позволить Хадсону выполнить эти тесты. На данный момент это не удается с неудачей поиска на ресурсе (в данном случае источник данных к ПЕРСИСТЕНТНОСТЬ блока 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 на моем Dev поле? Какую магию делают NetBeans в фоновом режиме?
  2. Как предоставить файл? Где это делает встроенный GlassFish на корпусе Hudson?

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

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

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

ответ

1

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

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

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

+0

спасибо за предложение! Когда я запускаю 'ant test', тесты действительно работают и выполняются. Любая другая идея? – Hank

+2

@Hank: Вы запустили его на сервере Hudson из командной строки? Если да, это может быть проблема с разрешением. Запустите тест с теми же учетными данными, что и Hudson? –

+0

@ 2-й Петр: Ты, чувак! Спасибо, парень, вот и все. $ {GLASSFISH_HOME}/glassfish/domains/domain1/config не читается пользователю hudson. Все хорошо сейчас! – Hank

Смежные вопросы