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?

12voto

Luca Geretti Punkte 10066

In jüngster Zeit sollten Sie einen Blick auf Pax Exam werfen: http://team.ops4j.org/wiki/display/paxexam/Pax+Prüfung

Dies sind die aktuellen Bemühungen des OPS4J im Zusammenhang mit dem Testen.

3 Stimmen

Ihre Website ist oft nicht erreichbar. GitHub-Seiten: Pax Prüfung 1 , Pax Prüfung 2 , Tutorium für die Pax-Prüfung 2

7voto

rescdsk Punkte 8548

Hier sind einige Tools, die noch nicht erwähnt wurden:

  • Ich benutze Tycho das ein Werkzeug für die Verwendung von Maven zur Erstellung von Eclipse-Plugins ist. Wenn Sie Tests innerhalb ihrer eigenen Plug-ins oder Plug-in-Fragmente erstellen, kann Tycho jeden Testsatz innerhalb seiner eigenen OSGi-Instanz mit allen erforderlichen Abhängigkeiten ausführen. Intro y weitere Infos . Das funktioniert bei mir ganz gut.

  • jUnit4OSGI sieht ganz einfach aus. Sie erstellen Unterklassen von OSGiTestCase, und Sie erhalten Methoden wie getServiceReference() , usw.

  • Pluginbuilder ein Headless-Build-System für OSGi-Bundles / Eclipse-Plug-ins, hat ein Rahmenwerk für den Testbetrieb genannt. Autotestsuite . Es führt die Tests im Kontext der OSGi-Umgebung aus, nach dem Build-Schritt. Aber es scheint seit einigen Jahren nicht mehr gepflegt worden zu sein. Ich denke, dass viele Eclipse-Projekte von Pluginbuilder zu Tycho migrieren.

  • Eine andere Möglichkeit besteht darin, eine Instanz von einen OSGi-Container innerhalb Ihr Einheitstest , die Sie direkt ausführen, wie erklärt aquí .

  • Hier ist jemand, der geschrieben hat eine kleine Bündelprüfsammler das nach JUnit (3)-Tests sucht und sie ausführt.

6voto

Toni Menzel Punkte 764

Es gibt ein spezielles Open-Source-OSGi-Testing-Framework auf OPS4J (ops4j.org) namens Pax-Drohne .

Vielleicht möchten Sie einen Blick auf Pax Drone werfen ([ [http://wiki.ops4j.org/confluence/x/KABo\]](http://wiki.ops4j.org/confluence/x/KABo]) ), die es Ihnen ermöglicht, alle Felix-Versionen sowie Equinox und Knopflerfish in Ihren Tests zu verwenden.

Zum Wohl, Toni

0 Stimmen

Mmmm... Maven scheint Pax Drone nicht zu finden, und ich kann keine alternativen Repositories finden, die in Ihrem Link erwähnt werden. Irgendeine Hilfe?

0 Stimmen

Danke für den Hinweis. Ich habe die Website soeben entsprechend aktualisiert. Zu Ihrer Information: Sie können sie hier finden: repository.ops4j.org/maven2

0 Stimmen

Es sieht so aus, als ob die Website nicht mehr verfügbar ist. Verwendet noch jemand dieses Framework?

6voto

flicken Punkte 15063

Spring Dynamic Modules bietet hervorragende Unterstützung für Prüfung von OSGi-Bündeln .

0 Stimmen

Mit SpringDM erhalte ich nur dies: junit.framework.AssertionFailedError: Exception in constructor: testOSGiStart (java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory Irgendwelche Ideen? Ich habe übrigens commons-logging zum Build-Pfad hinzugefügt.

0 Stimmen

Außerdem scheint SpringDM nicht JUnit4 zu unterstützen, ist dies korrekt?

0 Stimmen

NoClassDefFoundError tritt auf, wenn JVM die Klassendatei während der Laufzeit nicht finden kann, obwohl sie während der Kompilierzeit verfügbar war. Es handelt sich also nicht um einen Fehler von SpringDM, Sie müssen Ihr Projekt einfach neu erstellen. Wenn Sie Maven verwenden, bauen Sie durch Maven, oder wenn Ihre Eclipse-Einstellung von Auto-Build aktiviert ist, machen Sie eine kleine Änderung in Ihrer Java-Datei und speichern Sie sie. Sie werden diesen Fehler danach nicht mehr erhalten.

3voto

Rafael Chaves Punkte 542

Eclipse verfügt über einen Launch-Konfigurationstyp für die Ausführung von JUnit-Tests im Kontext einer Eclipse- (d.h. OSGi-) Anwendung:

http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tools/launchers/junit_launcher.htm

0 Stimmen

Das sieht eher so aus, als würde es Eclipse-Plug-ins testen. War meine Frage unklar?

1 Stimmen

Ist schon lange her, aber der Vollständigkeit halber: Eclipse-Plugins sind OSGi-Bundles, also kann man OSGi-Bundles mit dem normalen Eclipse-SDK testen.

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