16 Stimmen

Schnelle und einfache Möglichkeit zum Testen von OSGi-Bündeln

Derzeit arbeite ich im Rahmen einer Abschlussarbeit an der Universität an einem neuen Versionskontrollsystem. Die Idee ist, es hochgradig anpassungsfähig und erweiterbar zu machen.

Wir verwenden das OSGi-Framework (Equinox-Implementierung) zur Verwaltung unserer Plug-ins. Mein Problem ist, dass ich nicht finden können, eine einfache und leicht zu bedienende Methode zum Testen von OSGi-Bündeln.

Derzeit muss ich das Bundle mit Maven erstellen und dann ein Test-Harness ausführen. Ich bin auf der Suche nach etwas wie dem JUnit Test Runner für Eclipse, da es mir eine Menge Zeit sparen wird.

Gibt es eine schnelle und einfache Möglichkeit, OSGi-Bundles zu testen?

EDIT: Ich brauche nichts, um Eclipse-Plugins oder GUI-Komponenten zu testen, nur OSGi-Bundles.

EDIT2: Gibt es ein Framework, das JUnit4 unterstützt?

1voto

Wenn Sie GUI-Komponenten testen müssen, habe ich Folgendes gefunden SWTBot erledigt die Arbeit.

0 Stimmen

Danke, aber ich muss keine GUI-Komponenten oder Eclipse-Plugins testen.

1voto

user33790 Punkte 91

Vertrag ist ein Vertrags(test)rahmenwerk, das ziemlich akademisch ist, aber einige nette Ideen hat. Es gibt Papiere, die auf sie veröffentlicht werden, und die Menschen, die derzeit an der Verbesserung es.

1voto

Basy Punkte 11

Für Unit-Tests verwenden Sie das EasyMock-Framework oder erstellen Sie Ihre eigenen Implementierungen der benötigten Schnittstellen zum Testen.

1voto

pooh Punkte 662

El ProSyst Testausführungsumgebung ist ein nützliches Testwerkzeug für OSGi-Bundles. Es unterstützt auch JUnit-Tests als eines der möglichen Testmodelle.

1voto

Balazs Zsoldos Punkte 5896

Ich glaube, wir sind auf dasselbe Problem gestoßen und haben unsere eigene Lösung gefunden. Es gibt verschiedene Teile der Lösung:

  • Ein junit4runner, der alle OSGi-Dienste auffängt, die eine spezielle Eigenschaft definiert haben. Er führt diese abgefangenen Dienste mit der JUnit4-Engine aus. JUnit-Annotationen sollten in den Schnittstellen platziert werden, die die Dienste implementieren.
  • Ein Maven-Plugin, das ein OSGi-Framework startet (ein benutzerdefiniertes Framework kann als Maven-Abhängigkeit erstellt werden) und die Unit-Tests innerhalb des Maven-Lebenszyklus für Integrationstests ausführt.
  • Ein OSGi-Bündel für die Bereitstellung. Wenn dieses in Ihrem OSGi-Container abgelegt wird, öffnet sich ein einfaches, immer geöffnetes Fenster, in dem Sie Ihre Projektordner ablegen können (aus dem Total Commander oder aus Eclipse). Das Bundle wird dann neu verteilt.

Mit den Werkzeugen können Sie TDD durchführen und die geschriebenen Tests immer auch innerhalb der Maven-Integrationsphase laufen lassen. Es wird empfohlen, eclipse mit m2e und maven-bundle-plugin zu verwenden, da in diesem Fall die target/classes/META-INF/MANIFEST.MF neu generiert wird, sobald Sie eine Klasse in Ihrem Quellcode speichern, so dass Sie das Projekt per Drag & Drop in das Deployer-Fenster ziehen können. Die OSGi-Bundles, die Sie entwickeln, müssen keine besonderen Eigenschaften aufweisen (wie z.B. ein Eclipse-Plugin oder ähnliches).

Die gesamte Lösung ist OpenSource. Ein Tutorial finden Sie unter http://cookbook.everit.org

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X