Ich habe folgende Teststruktur:
%Vor% Es ist getan, weil ich keine separate Klassendatei für jeden Testfall erstellen möchte, der AbstractDbUnitTest
erweitert.
Das Problem ist, dass mvn test
keinen Test von meiner inneren Klasse ausführt. Gibt es eine Möglichkeit, Maven für solche Tests zu konfigurieren? Natürlich kann ich Methoden in der Elternklasse erstellen, die die inneren Klassenmethoden aufrufen, aber ich möchte einen klareren Weg.
Ja, das ist möglich mit dem neuen (nun, es ist nicht mehr neu) Enclosed
runner (seit JUnit 4.5 ), dass alle statischen inneren Klassen von eine äußere Klasse.
Um es zu verwenden, notieren Sie einfach die äußere Klasse mit @RunWith(Enclosed.class)
und machen Sie die inneren Klassen statisch.
Und mvn test
wird sie ausführen.
Ich erkläre (ein wenig mehr) die Lösung, die ich gefunden habe ...
Maven (AFAIK) verwendet standardmäßig das Plugin "maven-surefire-plugin", um alle in Ihrem Maven-Projekt definierten Tests auszuführen. Laut der Dokumentation dieses Plugins werden standardmäßig Tests ausgeschlossen bei inneren statischen Klassen eingeschlossen (oder zumindest war es mit Version, die ich verwende - 2.18.1).
Also habe ich eine leere Ausschlussregel eingefügt. resultierend aus dem Build-Abschnitt eines Pom:
%Vor%Tags und Links java unit-testing maven-2 junit