Ich arbeite an einem Projekt, wo ich vor dem Ausführen jedes JUnit-Tests eine Aktion durchführen muss. Dieses Problem wurde mithilfe von RunListener
gelöst, das dem JUnit-Core hinzugefügt werden konnte. Das Projekt Montag wird mit Maven getan, so hat ich diese Zeilen in meiner pom
Datei:Verwenden von JUnit RunListener in IntelliJ IDEA
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>cc.redberry.core.GlobalRunListener</value>
</property>
</properties>
</configuration>
</plugin>
Also, alles funktioniert mit:
mvn clean test
Aber wenn Tests gestartet werden mit IntelliJ (seinem internen Test runner) die Aktionen, die in unserem RunListener
codiert sind, werden nicht ausgeführt, daher ist es unmöglich, Tests mit der IntelliJ Infrastruktur durchzuführen.
Wie ich sehe, IntelliJ analysiert diese Konfiguration nicht aus der Pom-Datei. Gibt es eine Möglichkeit, IntelliJ explizit mitzuteilen, RunListener
zum JUnit-Core hinzuzufügen? Können einige VM-Optionen in der Konfiguration verwendet werden?
Es ist viel bequemer, eine schöne IntelliJ-Testumgebung zu verwenden, anstatt die maven-Ausgabe zu lesen.
P.S. Die Aktion, die ich ausführen muss, ist im Grunde eine Zurücksetzung der statischen Umgebung (einige statische Felder in meinen Klassen).
Vielen Dank für eine andere Lösung! Ich denke jetzt nur daran, ein globales Elternelement für alle meine Testklassen hinzuzufügen, wobei die '@ Before'-Methode angegeben ist. Also, in jedem Fall muss ich alle meine Testdateien bearbeiten. :(Ich werde ein Ticket in IntelliJ Bug Tracker erstellen, um diese Funktion hinzuzufügen. – dbolotin