Warnung: Unbekannte Enum-Konstante Status.STABLE

8

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: -

  • Fügen Sie dem Projekt ein JDK9-basiertes Modul hinzu.
  • Fügen Sie JUnit5 dem Klassenpfad mithilfe der IntelliJ-Verknüpfung hinzu. (lib-Ordner) [ 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
  • Java-Version "9" (build 9+181)
  • IntelliJ 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.

    
nullpointer 12.10.2017, 05:48
quelle

2 Antworten

3

1) opentest4j

opentest4j ist eine transitive Abhängigkeit von junit-jupiter-api . Siehe das Abhängigkeitsdiagramm:

%Vor%

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.

    
Vít Kotačka 26.10.2017 09:23
quelle
1

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 javac führt, die wie folgt aussehen :

%Vor%      

Um Verwirrung zu vermeiden, hat das JUnit-Team beschlossen, die Abhängigkeit erneut in den @API Guardian JAR zu übernehmen .

Siehe auch:

fnt 04.01.2018 15:52
quelle