2009-12-12 3 views
2

OSGI Тестирование фреймворков - некоторые наблюдения.Простой способ тестирования, требующий OSGI без множества артефактов и зависимостей

Я нахожусь в середине написания системы, использующей OSGI. Однако все популярные платформы тестирования (Spring-OSGI, PaxExam) требуют большого количества артефактов даже для простейшего теста.

Wishlist/Цели

В идеале я хотел бы один тест, который использует TinyBundle, чтобы собрать связки и дает им в рамках. После этого каркас будет выполнять тяжелую работу по запуску контейнера, развертыванию, запуску каждого теста, обновлению ui для отображения результатов и т. Д.

На поверхности кажется, что PAX-EXAM удовлетворит это, но у него есть дополнительные требования, которые я не смог решить, в Eclipse. Мои проблемы:

  • Для каждого комплекта требуется отдельный проект.
  • Каждый проект получает manifest.mf в $ project/meta-inf /.

В идеале я хотел бы объединить все мои манифесты и «внутренние» классы в отдельных подпакетах теста, а не разбросать их в своих соответствующих проектах.

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

Maven

Я хотел бы избежать Maven, так как это означает, что более сложная система, которая будет в конечном итоге требует создания, развертывания в репозиторий, который, в конце концов, даже если автоматизированном только замедляет даже больше. Это противоречило бы с моим использованием Infinitest, который автоматически обнаруживает измененные классы и просто выполняет правильные тесты.

Конфигурации запуска плагинов проекта Eclipse.

Этот подход требует, чтобы один из них собирал связки для развертывания до выполнения теста junit. Это, конечно, работает только в том случае, если у каждого есть отдельные проекты с сопоставлением от одного к одному на один комплект. Опять же, это идет вразрез с моими попытками консолидировать все тестовые пакеты зависимостей в рамках одного проекта.

Как это сделать?

  • Как я могу достичь этого?
  • Возможно ли это?
  • Какая простая альтернатива?

ответ

1

Один из альтернатив, который также использует экзамен Pax, - это то, что мы сделали в рамках тестирования OSGi (который тестирует реализации OSGi-фреймворка).Вместо того, чтобы дублировать все объяснение того, как это работает, вы можете обнаружить, что здесь:

http://opensource.luminis.net/wiki/display/OSGITEST/OSGi+testing+framework

Он не использует Maven, и написание новых тестов объясняется здесь:

http://opensource.luminis.net/wiki/display/OSGITEST/Writing+a+framework+test

Может быть некоторые из решений могут вас вдохновить. В общем, для OSGi существует множество тестовых инфраструктур (как и для OSGi), но до сих пор существует один, который «делает все остальное устаревшим».

+2

Ссылки сломаны, но я нашел [это] (https://github.com/wtreur/osgi-specification-test-framework). – reinierpost

+0

Это действительно новое место для этого кода. Уолтер - автор, поэтому, если у вас есть какие-то дополнительные вопросы, вы, вероятно, должны связаться с ним. –

+0

Сейчас я изучаю основы OSGi ... но надеюсь, что у меня будет много вопросов позже :) – reinierpost

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