Frage

Zur Zeit arbeite ich an einem neuen Versionskontrollsystem im Rahmen einer Diplomarbeit an der Universität. Die Idee ist es sehr anpassungsfähig und steckbar zu machen.

Wir sind mit dem OSGi-Framework (Equinox-Implementierung) unsere Plug-In verwalten. Mein Problem ist, dass ich nicht ein einfaches & einfach zu bedienen Methode zum Testen OSGi-Bundles finden.

Zur Zeit muss ich das Bündel mit Maven bauen und dann eine Testumgebung auszuführen. Ich bin auf der Suche nach so etwas wie der JUnit-Testläufer für Eclipse, wie es mir eine Menge Zeit sparen.

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

EDIT:. Ich habe nicht etwas brauche Eclipse-Plug-In oder GUI-Komponenten zu testen, nur OSGi-Bundles

EDIT2: Gibt es einen Rahmen, der JUnit4 unterstützt

?
War es hilfreich?

Lösung

Feder Dynamische Module hat eine hervorragende Unterstützung für Testen OSGi-Bundles .

Andere Tipps

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

Dies ist die aktuelle dynamisch auf OPS4J dem Test zusammen.

Es ist ein dedizierter Open Source OSGi-Test-Framework auf OPS4J (ops4j.org) genannt Pax Drone .

Sie können einen Blick auf Pax Drone haben wollen ([ http: //wiki.ops4j .org / Einmündung / x / Kabo] ), die Sie alle Felix Versionen sowie Equinox und Knopflerfish in Ihren Tests verwenden können.

Cheers, Toni

Hier sind einige Tools nicht erwähnt noch:

  • Ich bin mit Tycho , die ein Tool Maven für die Verwendung von Eclipse zu bauen Plugins. Wenn Sie Tests in ihrer eigenen Plug-In erstellen oder Plug-in-Fragmenten können Tycho jeden Satz von Tests innerhalb der eigenen OSGi Instanz laufen, mit all seinen erforderlichen Abhängigkeiten. Intro und weitere Informationen . Das ist ziemlich gut für mich arbeiten.

  • jUnit4OSGI sieht einfach. Sie machen Subklassen von OSGiTestCase, und Sie erhalten Methoden wie getServiceReference(), etc.

  • Pluginbuilder , eine kopflose Bausystem für OSGi Bundles / Eclipse-Plug-in, hat ein Test laufenden Rahmen Autotestsuite . Es läuft die Tests im Rahmen der OSGi-Umgebung nach dem Build-Schritt. Aber es scheint nicht für mehrere Jahre beibehalten worden zu sein. Ich denke, dass viele Eclipse-Projekte von Pluginbuilder Tycho migrieren.

  • Eine andere Möglichkeit ist eine Instanz von ein OSGi-Container in Ihr Gerät zu testen starten, die Sie direkt ausführen, wie erklärt hier .

  • Hier ist jemand, der ein kleiner geschrieben bündeln Test Sammler , die für JUnit (3) Tests durchsucht und führt sie.

Eclipse-hat eine Startkonfiguration Typen für JUnit-Tests im Rahmen einer Eclipse (das heißt OSGi) Anwendung ausgeführt wird:

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

Wenn Sie GUI-Komponenten testen, die ich gefunden habe SWTBot bekommt den Job zu erledigen.

Vertrag ist ein Vertrag (testing) Rahmen, der ziemlich akademisch, sondern hat einige schöne Ideen. Es gibt Papiere, die auf sie veröffentlicht werden, und die Menschen, die derzeit arbeiten sie zu verbessern.

Die ProSyst-Test Execution Environment ist ein nützliches Test-Tool für OSGi-Bundles. Es unterstützt auch die JUnit-Tests als einer der möglichen Testmodelle.

Für Unit-Tests verwenden, um den EasyMock Rahmen oder erstellen Sie Ihre eigenen Implementierungen der erforderlichen Schnittstellen für die Prüfung.

Ich denke, dass wir das gleiche Problem begegnet und wir unsere eigene Lösung gemacht. Es gibt verschiedene Teile der Lösung:

  • A junit4runner, die all OSGi-Service fängt die eine besondere Eigenschaft definiert wird. Es läuft diese gefangenen Dienste mit JUnit4 Motor. JUnit Anmerkungen platziert in Schnittstellen werden sollte, dass die Dienste implementieren.
  • Eine Maven-Plugin, das einen OSGi-Framework startet (ein eigenes Framework als Maven Abhängigkeit erstellt werden kann) und führt die Unit-Tests innerhalb des Integrationstest Maven-Lebenszyklus.
  • A deployer OSGi-Bundle. Wenn dies in Ihrem OSGi-Container fallen gelassen wird ein einfaches always-on-top-Fenster wird geöffnet, wo Sie Ihre Projektordner ablegen können (von total commander oder von Eclipse). Dies wird dann das Bündel erneut bereitstellen.
und

Mit den Werkzeugen Sie TDD tun können, und haben die schriftlichen Prüfungen immer innerhalb der Maven Integration-Phase ausgeführt werden. Es wird empfohlen, Eclipse mit M2e zu verwenden und Maven-Bundle-Plugin wie in diesem Fall der Ziel / classes / META-INF / MANIFEST.MF regeneriert wird, sobald Sie eine Klasse in Ihrer Quelle speichern, so dass Sie das Projekt und Drop ziehen zum deployer Fenster. Die OSGi-Bundles Sie entwickeln keine besondere Funktion haben, hat (wie Sein eine Eclipse-Plugin oder etwas).

Die gesamte Lösung ist Open Source. Sie können ein Tutorial unter finden http://cookbook.everit.org

Während der letzten paar Jahre Tycho - ein neues Maven basiertes Build-System für OSGi - geworden ist sehr beliebt unter der Eclipse Foundation. Dieser Rahmen umfasst auch Verfahren Maven todsichere zu verwenden OSGi-Bundles in separaten Prüfständen zu testen ...

Wie wäre es BND-Test-Maven-Plugin?

Es ermöglicht innerhalb eines laufenden Container wie Felix oder Equinox laufen JUnit. Wenn es verwendet wird, um die BNDTools für Eclipse dies sehr ähnlich ist, aber nur maven withpout Eclipse und ohne UI.

https://github.com/bndtools / BND / Baum / Master / maven / BND-Test-maven-Plugin

auch einen Blick auf die effectiveosgi Vorbild für Maven. Dies gibt Ihnen einen guten Ausgangspunkt Ihr Projekt zu erstellen oder einfach nur Tests hinzufügen.

https://github.com/effectiveosgi

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top