Ich würde gerne Makro (nicht Mikro!) Black Box Tests meines Krieges auf einer eingebetteten WildFly-Instanz durchführen.Wie richte ich Arquillian ein, um ein Maven War-Projekt zu testen, indem ich den gesamten Krieg auf WildFly embedded setze?
Mein Maven Projekt sieht wie folgt aus
<project>
...
<packaging>war</packaging>
<!-- Lots of classes in src/main/webapp and files in src/main/webapp -->
<dependencies>
<!-- Lots of compile/runtime dependencies that change very frequently -->
<!-- Lots of test dependencies that change very frequently -->
</dependencies>
</project>
Meine Arquillian Tests die folgenden Anforderungen erfüllen müssen:
- Bereitstellen des gesamten Krieges auf den App-Server in den Tests. Dies umfasst alle Produktionsklassen, alle Laufzeitabhängigkeiten und alle
src/main/webapp
Dateien. Aus Wartungssicht ist es unmöglich, Mikrobereitstellungen durchzuführen, da sich Klassenabhängigkeiten und JAR-Abhängigkeiten sehr häufig ändern. Daher können wir in der ShrinkWrap-Bereitstellung nichts aufzählen. - Sie nichts im Test hart codieren oder arquillian.xml , die bereits von der Maven
pom.xml
bekannt ist. Dazu gehören Versionszeichenfolgen, Abhängigkeitslisten, Paket- oder Klassenlisten, Installationsverzeichnisse für Anwendungsserver usw. - Verwenden Sie nicht mehr als 1 Maven-Modul. Meine Tests zum Testen meines Krieges gehören in den Testordner des gleichen maven-Moduls, das den Krieg produziert.
- Benutzer, die meinen Code Kasse müssen in der Lage sein, so einfach die Tests ausführen:
- Tests von IntelliJ nach den
pom.xml
mit IntelliJ einfachen Öffnen ausgeführt werden muss. - Verwenden Sie eingebettete WildFly-Container, so dass nichts zuerst installiert werden muss, kein Prozess muss zuerst ausgeführt werden und keine
JBOSS_HOME
Umgebungsvariable muss zuerst festgelegt werden.
- Tests von IntelliJ nach den
- Ich bin nur daran interessiert Test Blackbox, so dass alle meine Tests können laufen als Client.
In der Theorie ist das alles möglich mit Arquillian des Maven Resolver, eingebettete Container, @RunAsClient
, Maven Failsafe-Plugin, einige arquillian.xml
Magie und viel Maven Magie. Aber in der Praxis kann ich dieses Zeug nicht zur Zusammenarbeit bringen und finde auch keine Dokumentation, die dieses Szenario angemessen abdeckt, also hoffe ich, dass jemand deutlich zeigen kann, wie sie zusammenarbeiten können.
Wenn Sie Makro-Tests in Erwägung ziehen, können Sie sich [arquillian-suite-extension] (https://github.com/ingwarsw/arquillian-suite-extension) ansehen oder Arquillian überhaupt nicht ausführen. Warum? Da es sich bei Arquillian um Mikro-Implementierungen handelt, scheint dies bei Ihnen nicht der Fall zu sein. Auch die Verwendung eingebetteter JEE App Server ist wie [nach Problemen fragen] (http://arquillian.org/blog/2012/04/13/the-danger-of-bedded-containers/) ... –
Vanille Arquillian sollte wirklich unterstützen die Features von Arquillian-Suite-Erweiterung aus der Box! –