Я использую 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.Правильно?
Два вопроса:
- Почему это работает с NetBeans на моем компьютере разработчика?Какую магию делает NetBeans в фоновом режиме?
- Как мне предоставить файл?Откуда его ожидает встроенный GlassFish в Hudson-box?
Hudson использует те же скрипты Ant сборки (созданные NetBeans).
Я прочитал этот пост об instanceRoot и EmbeddedFileSystemBuilder, но я не понимаю этого достаточно.Это необходимо для каждого TestCase (Emb. GF запускается / останавливается для каждого тестируемого компонента)?Является ли эта часть EJBContainer.createEJBContainer ()?Опять же, почему нет необходимости делать это при запуске тестов в NetBeans?
Обновление Следуя совету Питера, я могу подтвердить: при запуске ant на только что извлеченной копии кодате же свойства, что и для hudson, тесты выполняются!