Konventionen für Integrationstests
Es ist geplant, demnächst die bestehenden Tests für Kernsoftware, PuA und Archivsystem im Repository zu ergänzen, von denen ein großer Teil Integrationstests sind.
Folgende Punkte sind für mich unklar:
- Ich halte die Konvention mit dem IT-Suffix der Testklasse nicht für unbedingt sinnvoll. ich würde vorschlagen, neben dem Gradle-Order
/src/test
(und/src/main
) einen weiteren Order/src/integrationtest
oder ähnlich anzulegen. Dann kann man die Tests besser von einander trennen. - Gibt es einen Gradle-Task um die Integrationstests auszuführen? Wenn nein, sollte dieser ergänzt werden, um eine regelmäßige automatische Ausführung zu ermöglichen.
Vielleicht gibt es Unklarheiten bei dem Begriff Integrationstest, Ich verstehe darunter JUnit-Tests, die automatisiert eine komplette Datenverteilerumgebung einrichten und starten und darin verschiedene Aktionen testen. Da ein Datenverteiler gestartet werden muss (teilweise mehrere) und vorher ggf. eine Konfiguration automatisiert angelegt wird, dauern die Ausführung der Kernsoftware-Integrationstests insgesamt ca. 6 Stunden, im Vergleich zu normalen JUnit-Tests die einzelne Klassen (ggf. in einer Mock-Umgebung) testen und daher in Sekunden fertig sind. Es macht daher schon Sinn, die Integrationstests nur bei Bedarf (z. B. regelmäßig zur Kontrolle und jeweils vor einem Release) auszuführen.