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?

0voto

Tonny Madsen Punkte 12428

In den letzten paar Jahren Tycho - ein neues, auf Maven basierendes Build-System für OSGi - ist bei der Eclipse Foundation recht beliebt geworden. Dieses Framework beinhaltet auch eine Methode zur Verwendung von Maven Surefire, um OSGi-Bundles in separaten Testbeds zu testen...

0voto

Es gibt viele Möglichkeiten, OSGi-Komponenten zu testen, nehme ich an. Eine Möglichkeit des Testens ist die Verwendung des Robot Frameworks. Was ich getan habe, ist meine Tests mit Robot Framework und haben die Remote-Bibliotheken entweder in OSGi installiert oder haben sie sprechen OSGi-Test-Komponenten über Sockets und Roboter würde zu diesen Modulen sprechen und Tests durch sie laufen.

Im Grunde sollten Ihre OSGi-Module also Schnittstellen haben, die etwas tun und eine Ausgabe produzieren. In meinem Setup hatte ich also eine Testkomponente, die Dienstaufrufe an die eigentliche OSGi-Komponente tätigte, und dann gab es einen Abhördienst, der die Ereignisse/Dienstaufrufe (die vom zu testenden Modul getätigt wurden) abfing, und diese Ergebnisse konnten vom Roboter abgefragt werden. Auf diese Weise kann man ein umfangreiches System in kleine Komponenten aufteilen und das System in einer produktionsähnlichen Umgebung laufen lassen und es automatisch auf Komponentenebene testen oder einige der realen Komponenten gemeinsam testen lassen.

0voto

haltunbay Punkte 565

Zusammen mit anderen erwähnten mockito ist sehr praktisch, um Plugin-Abhängigkeiten (Referenzen usw.) zu spiegeln. siehe https://www.baeldung.com/mockito-annotations

-1voto

Gadi Punkte 1469

Wie wäre es mit bnd-testing-maven-plugin?

Es ermöglicht die Ausführung von JUnit innerhalb eines laufenden Containers wie Felix oder Equinox. Wenn Sie die BNDTools für Eclipse verwendet haben, ist dies sehr ähnlich, aber nur Maven ohne Eclipse und ohne eine Benutzeroberfläche.

https://github.com/bndtools/bnd/tree/master/maven/bnd-testing-maven-plugin

Sehen Sie sich auch den Archetyp effectiveosgi für maven an. Damit haben Sie einen guten Ausgangspunkt, um Ihr Projekt zu bauen oder einfach nur Tests hinzuzufügen.

https://github.com/effectiveosgi

0 Stimmen

Ein Link zu einer Lösung ist willkommen, aber bitte stellen Sie sicher, dass Ihre Antwort auch ohne diesen nützlich ist: Kontext um den Link hinzufügen damit Ihre Mitnutzer eine Vorstellung davon haben, worum es sich handelt und warum es dort ist, und zitieren Sie dann den wichtigsten Teil der Seite, auf die Sie verlinken, für den Fall, dass die Zielseite nicht verfügbar ist. Antworten, die kaum mehr als ein Link sind, können gelöscht werden.

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