Arquillian Spring Framework Extension 1.0 Alpha2

Hartmut Schlosser

Die Anbindung des JBoss-Testprojektes Arquillian an das Spring-Framework ist einen Schritt weiter gekommen: Das Entwickler-Team hat die Alpha2-Version der Arquillian Spring Framework Extension 1.0 freigegeben.

Gearbeitet wurde an einer Verbesserung der existierenden Erweiterungen, aber auch neue Features sind umgesetzt worden. So lassen sich Spring-MVC-Anwendungen nun mit dem Werkzeug Warp testen. Ein neuer Spring Embedded Container ermöglicht den Testbetrieb in einem Embedded-Modus, was die Ausführungszeit verringern soll. Da es sich dabei um keinen vollen Servlet Container handelt, können allerdings keine Servlet Requests einer Webanwendung getestet werden.

Das JBoss-Projekt Arquillian ist die Reaktion auf die im Java-EE-Standard nicht explizit vorhandene Unterstützung für Testentwickler. Hohe Zusatzaufwände mussten hier in Kauf genommen werden, da Anwendung beispielsweise in Integrationstests wiederholt zusammengebaut werden müssen. Außerdem ist das Ansteuern des Applikationservers aus dem Test heraus nicht ohne Weiteres möglich. Wünschenswert wäre, dass Änderungen an Test- und Produktivcode keine Rebuilds, etwa via Ant oder Maven erforderten und Integrationstests direkt in der IDE ausgeführt werden können.

Dieser Technologie-Lücke nimmt sich Arquillian an. Die Besonderheit des Projektes liegt darin, dass die Testausführung auf die Ziel-Runtime verlegt wird und der Entwickler die Laufzeitumgebung nicht innerhalb der Tests oder Projekt-Builds verwalten muss. Arquillian legt zu diesem Zweck einen kompletten Lifecycle um die Test-Ausführung, der die Container-Verwaltung übernimmt. Testfall und alle abhängigen Ressourcen werden als sogenannte ShrinkWrap-Archive gebundled. Die Archive werden in den Containern deployed, und die Tests in den bzw. gegen die Container ausgeführt. Zur Verfügung stehen zudem Dependency Injection und andere deklarative Services.

In der vorliegenden Version unterstützt Arquillian über 10 Web Container, darunter JBoss AS, GlassFish und Tomcat. Der Container-Support erlaubt die Integration in zahlreiche Plattformen wie Java EE 5/6, Servlets, OSGi, Embedded EJB, Standalone CDI und verschiedene Cloud-Umgebungen.

Im nächsten Arquillian-Release soll ein Support für Spring Transactions hinzukommen und die Warp-Integration auf der Client-Seite weiter ausgebaut werden. Zielvorgabe ist es, das Testen von REST-Anwendungen noch einfacher zu machen.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.