Arquillian
-
Upload
korhan-guelseven -
Category
Software
-
view
83 -
download
0
Transcript of Arquillian
AGENDA
• Einführung Integration Testing• Arquillian & ShrinkWrap• Movie Time• Erfahrungen aus dem Projekt ZPS• Ausblick & Fazit• Fragen
• Fokussiert auf eine Klasse• Atomare Validierung• Schnell
• Zusammenspiel atomarer Einheiten• Validierung von Ergebnissen• Einbettung in Systemumgebung• Grobgranular• Langsam
ABGRENZUNG
• Abhängigkeiten mocken• Datenquellen konfigurieren• Laufzeitumgebung starten• Artifakt(e) builden und deployen• Classpath-Problematik• Big Bang vermeiden
HERAUSFORDERUNGEN
Arquillian
«Picking up where unit tests leave off, Arquillian handles all theplumbing of container management, deployment andframework initialization so you can focus on the task at hand,writing your tests. Real tests!»
Skip the BuildTest In-Container
ARQUILLIAN
• Massgeschneiderte Builds on-the-fly• Automatische Deployments• In-Container Testing - «the real thing!»• Integration mit Junit & IDE & Maven• Und Extensions
FEATURES
«a simple, Apache-licensed Java API for assembling archives likeJARs, WARs, EARs; developed by the JBoss Community»
Benefits:● Inkrementeller save and re-run● Build überspringen●Micro-Deployments
SHRINKWRAP
Test Enrichment
• Testcase Abhängigkeiten werden aufgelöst.• Unterstützt werden:
– @EJB– @Inject– @Resource– @PersistenceContext– @PersistenceUnit– @ArquillianResource
TEST ENRICHMENT
• Schnittstelle zum Container• Aktivierung erfolgt dynamisch in der Laufzeit• Konfiguration mittels Maven Profile
CONTAINER ADAPTER
• Embedded• Gleiche JVM wie der Test runner• Testprotokoll local oder remote• Lifecycle durch Arquillian (start/stop)
• Remote• Separate JVM• Testprotokoll remote (connect /disconnect)
• Managed• Wie Remote aber mit Lifecycle Management
CONTAINER MODES
Container R M E Spec
JBoss 7.1 V6 Java EE 6
Glassfish 3.1 Java EE 6
WebSphere 8 Java EE 6
WebSphere 7 Java EE 5
Oracle Weblogic 12.1 Java EE 6.0
Apache OpenEJB 3.1 EJB 3.0
Weld EE/SE 1.1 CDI
Apache OpenWebBeans 1.0 CDI
Tomcat 7.0 V6 Servlet 3.0
Jetty 7.0 - - ~ Servlet 3.0
Remote Managed EmbeddedVollständige Liste unter https://docs.jboss.org/author/display/ARQ/Container+adapters
CONTAINERS
The Big Testowskiin CDI+EJB+JPA incident
�Starring JBoss 7.1 & Websphere 8.5
Co-Starring Hibernate & H2 DatabaseDirected By Arquillian
Guest MS Excel
MOVIE TIME
Ingredienzen eines instabilen Systems:
• Experimentelle Algorithmen
• Oft ändernde Daten• Neue Technologie EJB 3.1• Prototypische Vereinfachungen
Ziele:
• Enable Change
• Automatisierte Validierung von Resultaten
BEWEGGRÜNDE
• Integration Testing mit Arquillian• Embedded Glassfish• Embedded HSQL Database• Mit realen Daten• Maven Integration• Continuous Testing auf Jenkins
LÖSUNGSANSATZ
• Erfolgreiche Verifikation der Systemantworten• Frustrierendes Setup• Einfach und sexy zur Entwicklungszeit• Laufzeit wird schnell problematisch• Embedded Containers sind tricky• Vereinfacht den Entwicklungsprozess• Sprecht vorher mit eurem WZU Kontakt !
LESSIONS LEARNED
• PersistenceTesting the Persistence Layer
• Drone, GrapheneAJAX-enable functional Tests for web-based UI
• Spring«replace the Spring test framework with Arquillian
and gain access to all the Arquillian extensions, inparticular Drone»
AUSBLICK
Herausforderungen:• Komplexe Deployments• Fehlersuche
Tipps:• Die eigene «Story» braucht Zeit & Ausdauer• Keine Angst vor schmutzigen Händen
Ausprobieren. Es lohnt sich.
FAZIT