Was ist der Zweck von Karate-Junit5, wenn Sie Tests ohne Karate-Junit5 ausführen können?

Pete Edwards

Die Karate-Dokumente enthalten zwei Beispiele für Tests mit Karate und JUnit5:

Ich habe ein Projekt nur mit Karate-Core (0.9.9-RC2) mit dem zweiten Beispiel erstellt und brauche kein Karate-Junit5. Was ist der Unterschied?

Ich bin sehr beeindruckt von dem, was Karate anbietet, und ich bin daran interessiert, ein Testgeschirr zu entwickeln, das möglicherweise Tests nach Laufzeitkriterien auswählt und auch benutzerdefinierte Berichte benötigt, sodass ich nach den einfachsten Möglichkeiten suche, mich in das zu integrieren Testläufer. Der Code in karate-junit5 scheint ein guter Ausgangspunkt zu sein, aber ich möchte nur verstehen, warum er für normal ausgeführte Tests eigentlich nicht erforderlich ist.

Peter Thomas

Tolle Frage und ich kann das beantworten. Sie haben Recht, die direkte Verwendung der RunnerKlasse ist ausreichend, und dies ist die einzige Möglichkeit, Tests parallel auszuführen.

Wenn Sie jedoch den JUnit-Runner verwenden, erhalten Sie die "grüne Leiste", die Sie als Java-Entwickler gewohnt sind, und wir stellen sicher, dass die IDE-Benutzeroberfläche (z. B. die Baumansicht von Testläufen und Fehlern usw.) ausgefüllt ist. In IntelliJ sehen Sie sogar die Protokolle, wenn Sie auf einen der "Testfall" -Knoten klicken, wenn ich mich recht erinnere.

BEARBEITEN: Beachten Sie, dass ich hier meine, dass Sie die Daten von jedem Scenarioin der IDE sehen können, nicht die Java-Klasse des enthaltenden JUnit-Tests. Screenshot von IntelliJ unten. Auf diese Weise können Sie schnell feststellen, was fehlgeschlagen ist, und die entsprechende Fehlermeldung anzeigen, ohne in Protokolle / HTML-Berichte eintauchen zu müssen:

Geben Sie hier die Bildbeschreibung ein

Aber wenn Sie sich erst einmal daran gewöhnt haben, die HTML-Berichte zu betrachten, die Karate meiner Meinung nach ausgibt, brauchen Sie die JUnit-Integration nicht mehr.

Zusammenfassend: Die JUnit-Unterstützung ist

a) weil wir als Cucumber-Erweiterung begonnen haben (es gibt sogar eine @KarateOptionsAnmerkung, die veraltet ist)

b) weil einige Leute die IDE-Integration + Erfahrung mögen und es nützlich ist, "einen Test nach dem anderen" im Dev-Modus auszuführen

Ihr Kommentar überzeugt mich mehr davon, dass wir den JUnit-Support letztendlich ablehnen können. Es wäre gut, wenn Sie Ihr Feedback dazu erhalten würden, wenn Sie die Gelegenheit hätten, mehr herumzuspielen.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

junit5 - Tests parallel ausführen (ohne forkCount in pom)

Was ist der Zweck von Mochas #beforeEach, wenn Sie nur Code im Bereich #describe ausführen können?

Was ist der Zweck von git stash, wenn Sie nur ein neues Commit durchführen können?

Was ist der Zweck der Configure-Methode von IServiceCollection, wenn Sie ohne diese DI-Einstellungen vornehmen können?

Ist es möglich, Gurke HTML-Berichte mit Karate der JUnit5 fließend API zu generieren?

Ist der TestReporter von Junit5 threadsicher?

So schalten Sie die Berichtssicherung um, ohne karate-junit5 parallel auszuführen

Ausführen von Karate-Feature-Dateien über junit

JUnit5: Zugriffserweiterungsfeld von der Testklasse

Initialisieren Sie die Datenbank vor den Tests von JUnit5 und Spring

So führen Sie Tests nach Gradle anstelle von IntelliJ mit JUnit5 und SpringBoot2 in einem Multi-Modul-Projekt durch

JUnit5: Geben Sie die Reihenfolge der Ausführung mehrerer @Nested Klassen

Konfigurieren Sie JUNIT5 korrekt für Tests

So verwalten Sie fehlgeschlagene Tests in JUnit5

Was ist der Zweck des "&" -Zeichens, wenn Sie eine .py-Datei über die Befehlsshell ausführen?

Wie können Sie in einem AS_IF mehrere Aktionen ausführen, wenn dies der Fall ist?

Kein Fehler bei ausführbaren Methoden bei der Migration von Junit4 nach Junit5:

Was ist der Zweck von emplace(), wenn wir vector[1] = someInt verwenden können?

Was ist der Zweck des +=-Zeichens für diesen Code, wenn Sie stattdessen einfach + tun können?

Können wir Karate-Skripte in der gesamten Umgebung in der Datei karate-config.js auf einmal ausführen?

Ist es möglich, Tests auszuwählen, die mit einer Kombination von Tags in JUnit5 / Gradle versehen sind?

Tests mit JUnit5 Console Launcher können nicht ausgeführt werden

Karate-Gurkenberichte in Junit 4 ohne parallele Ausführung

Wie bekomme ich JSON-Ausgabe mit Karate & Junit5?

Können Sie JUnit-Tests für eine CLI-Anwendung ausführen?

Wie können Sie mehrere Karate-Feature-Dateien in einer Gatling-Simulation ausführen?

Ausführen von JUnit5 über die Befehlszeile mit Abhängigkeiten

So wählen Sie mit Maven die JUnit5 Tags ausführen

Was ist der Zweck von "{}" in "new int [5] {};"?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv