Führen Sie Tests von inneren Klassen über Maven

8

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.

    
Vladimir 18.01.2010, 14:15
quelle

2 Antworten

9

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.

%Vor%

Und mvn test wird sie ausführen.

    
Pascal Thivent 19.01.2010, 06:30
quelle
4

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%     
Carlitos Way 19.11.2015 20:22
quelle

Tags und Links