Vaadin-Selenium-Integration-Tests in SpringBoot mit SpringBootTest in Maven

Submitted by Stefan Sedelmaier on Thu, 02/07/2019 - 21:53

Um einen Selenium-Integration-Test für Vaadin-Flow als SpringBootTest mit Maven-Surefire zu starten muss das Property -Dsurefire.useManifestOnlyJar=false gesetzt werden.
IntegrationTests mit der Standardendung IT werden von maven per default mit dem Failsafe-Plugin ausgeführt, wird in Netbeans ein IT-Test mittels "Test File" ausgeführt wird, wird aber das Goal surefire:test -Dtest=MeinTestIT ausgeführt.
Ein @SpringBootTest mit Selenium-Webdriver gegen eine Vaadin-Page funktioniert hierbei aber nicht; im Browser wird eine Fehlermeldung "TypeError: $0.$connector is undefined" angezeigt, eine genauerer Analyse ergibt das die Bower-Components "frontend/bower_components/*" nicht geladen werden können.
Das Problem ist hier Spring-Boot mit Surefire: surfire erstellt in target/surefire einen surfirebooter.jar nur mit manifest.mf, und allen Classpath Einträgen, diese ist dann das einziege Jar im TestClasspath. StaticResourceJars von SpringBoot liest aber nicht das manifest.mf und fügt somit nur das surfirebooter.jar als TomcatResource hinzu, somit kann das VaadinServlet die frontend-Resourcen nicht aus den Jars laden.

Add new comment