2014-02-13 3 views
0

Интересно, может ли кто-нибудь указать мне хороший учебник/образец/лучшие практики об использовании JUnit4OSGI с Equinox в качестве контейнера OSGI? Я уже скачал JUnit4OSGI и начал писать образцы тестовых примеров, но то, что я ищу, - это ответы на такие вопросы, как:JUnit4OSGI с Equinox

1- Как структурировать модульные тесты? поместить его в отдельный пакет или каждый комплект должен иметь свои собственные модульные тесты?

2 - Как запустить модульные тесты с помощью подключаемого модуля maven? Или есть лучший способ?

3- Как запустить модульные тесты во время разработки, так как я понимаю, что имеется только командная строка, специфичная только для Felix.

Спасибо.

ответ

2

Я не могу помочь с Junit4OSGi, но я могу предложить альтернативу, которая работает с Maven. Она имеет следующие части:

  • testRunner: Модуль, который может запускать тесты, если они зарегистрированы в качестве OSGi услуг
  • testRunner-junit4: двигатель Junit4 для модуля TestRunner
  • eosgi-maven-plugin: A Maven плагин, который может использовать модулей выше и запускать модульные тесты во время фазы интеграции-тестирования в равноденствии, felix или пользовательском контейнере
  • richconsole: Простой модуль, который позволяет отбрасывать модули в контейнер OSGi. Вместе с плагином maven они могут использоваться для обновления зависимостей maven в контейнере без перезапуска

На самом деле Testrunner не заботится о том, какие технологии предлагали сервис OSGi. Это может быть план, DS, iPojo или что-то еще. Он нуждается в следующих услугах:

  • Необходимо предоставить сервисное имущество eosgi.testId. Это уникальное значение
  • Необходимо предоставить сервисное обслуживание eosgi.testEngine. В случае JUnit это junit4
  • В случае JUnit класс/интерфейс должен быть аннотирован аннотациями JUnit. Помните, что план упаковывает объекты службы (я не знаю, если iPojo делает это так), поэтому вы должны реализовать интерфейс в своем классе и аннотирования функции в интерфейсе вместо класса

Я думаю, что лучший место для начала - maven usage site. В настоящий момент проект osgi-liquibase-bundle использует самые современные версии. Не зная, что он делает, это хороший пример конфигурации (иерархия проекта и конфигурация pom.xml).

Все модули и плагин доступны по адресу maven-central.

Update

руководство об использовании инструментов доступна на http://cookbook.everit.org

Update 2016 года.12

Теперь существует Eclipse plugin, что позволяет пользователю запускать/останавливать/отлаживать/обновлять среды OSGi, указанные eosgi-maven-plugin. Использование плагина имеет преимущества по сравнению с использованием richconsole.

Cookbook скоро будет обновлен, чтобы использовать плагин Eclipse вместо richconsole.

+0

Большое спасибо. Будет ли это продолжаться. – Rami

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