Pax Exam 3.3.0 - Как загрузить служебную банку?

Я использую последнюю версию Pax Exam (3.3.0) для тестирования OSGi. У меня запущен и запущен экзамен Pax Exam, я развертываю и запускаю свои пакеты и т. Д. Жизнь прекрасна.

У меня также есть служебный проект, содержащий различные фабрики и другие полезные функции, которые я хочу повторно использовать в нескольких тестовых проектах. Это проект maven, который включен в качестве зависимости в Pax Exam pom.xml.

Однако, как только я пытаюсь получить доступ к любому из классов, содержащихся в служебной банке, я получаю ClassNotFoundException. Я поигрался с загрузчиком классов и обнаружил, что могу напрямую загрузить класс через URLClassLoader. Но все же я получаю исключение ClassNotFoundException.

Превратить служебный проект в пакет нельзя. Мне нужно будет использовать служебный код в аннотированных методах @BeforeClass, а экземпляр BundleContext еще не внедрен.

Может ли кто-нибудь подсказать мне лучший / самый простой способ поместить мой служебный проект в Pax Exam?


person protectedmember    schedule 26.09.2013    source источник


Ответы (2)


Как указано в официальной документации, @BeforeClass не поддерживается Pax Exam , по крайней мере, не так, как ожидалось. Он выполняется драйвером JUnit, а не внутри тестового контейнера, поэтому отсутствует контекст пакета.

Если вы хотите, чтобы ваш код запускался в контейнере, он должен быть в пакете.

Этот вопрос обсуждался здесь.

person Harald Wellmann    schedule 26.09.2013
comment
Понятно. Спасибо за ответ, он простой, но многое проясняет! - person protectedmember; 03.10.2013