Bei der Suche nach dieser und irgendwie that , ich habe versucht aus, um Pakete zu erstellen, die die Klassen main
und test
unterteilen und dann den Compiler mit zusätzlichen Modulen verwenden, um die Komponententests auszuführen. Nicht ein sehr guter Weg, sondern nur eine hypothetische Struktur für den Moment.
Wenige offene Fragen, als ich weiter ging, waren: -
junit-jupiter-api-5.0.0.jar
] Q. Beachten Sie, dass das opentest4j-1.0.0.jar
in den Ordner lib / gebracht wird. Warum ist das so, wofür wird das andere Glas verwendet?
Fügen Sie die Klassen hinzu und generieren Sie entsprechend einige Testmethoden.
Kompilieren Sie das Beispielprojekt (freigegeben, um ein Bild der verwendeten Verzeichnisstruktur zu zeichnen) Verwenden Sie den Befehl
%Vor%Ergebnisse in Warnungen als -
%Vor%
Hinweis : -
Ich finde die Verwendung von junit-jupiter
verdächtig, da, wenn ich den Code mit JUnit auskommentiere und den gleichen Befehl ausführe, die Dinge gut zu funktionieren scheinen.
Bibliotheken / Tools verwendet, wenn dies von Bedeutung sein könnte: -
junit-jupiter-api-5.0.0
mit "9" (build 9+181)
2017.2.5
Q. Was könnte ein möglicher Grund für eine solche Warnung sein? Außerdem kann ich das API.Status
nicht in meinem Projekt und außerhalb der Projektklassen finden.
1) opentest4j
opentest4j
ist eine transitive Abhängigkeit von junit-jupiter-api
. Siehe das Abhängigkeitsdiagramm:
2) unbekannte Enum-Konstante Status.STABLE
Sie müssen folgende Abhängigkeit hinzufügen: apiguardian-api
.
Zum Beispiel in Gradle können Sie das über:
tun %Vor%Aber insgesamt ist Abhängigkeit unabhängig vom Build-Tool, also können Sie es in einfacher IDE ohne Gradle oder Maven machen.
Die Kompilierungswarnung kann einfach ignoriert werden. Außerdem wird es nicht mehr erscheinen, beginnend mit der Version 5.1.0
(derzeit in Entwicklung). Es ist alles erklärt in Release Notes :
In 5.0.1 wurden alle Artefakte so geändert, dass sie eine optionale anstelle einer obligatorischen Abhängigkeit von der @API Guardian JAR in ihren veröffentlichten Maven POMs enthielten. Obwohl der Java-Compiler fehlende Anmerkungsarten ignorieren sollte, haben viele Benutzer gemeldet, dass das Kompilieren von Tests ohne die @API Guardian JAR im Klassenpfad zu Warnungen von
%Vor%javac
führt, die wie folgt aussehen :Um Verwirrung zu vermeiden, hat das JUnit-Team beschlossen, die Abhängigkeit erneut in den @API Guardian JAR zu übernehmen .
Siehe auch:
Tags und Links java unit-testing java-9 junit5 intellij-idea2017