cucumber-java

___ tag123maven ___ Apache Maven ist ein Build-Automation- und Projektmanagement-Tool, das hauptsächlich für Java-Projekte verwendet wird. Dieses Tag ist für Fragen gedacht, die sich nicht auf eine bestimmte Maven-Version beziehen. Verwenden Sie stattdessen den Gradle-Tag für Fragen zu Gradle. ___ answer47238337 ___
%Vor%     
___ tag123cucumber ___ Cucumber ist ein BDD-Tool (behavior driven development), das Funktionsbeschreibungen in reinem Text (strukturiert in der einfachen Gherkin-Sprache) als automatisierte Tests ausführt. ___ qstnhdr ___ Running Cucumber testet direkt vom ausführbaren jar ___ tag123cuumberjunit ___ Die JUnit-Integration, die vom Cucumber-Jvm-Projekt bereitgestellt wird. ___ tag123cuumberjvm ___ Cucumber-JVM ist eine Gurken-Implementierung für die beliebtesten JVM-Sprachen. Cucumber-JVM unterstützt derzeit Java. Es gibt auch Implementierungen für die folgenden JVM-Sprachen, aber ab Version 2.1.0 werden sie nicht unterstützt:     Groovig     Scala     Clojure     Jython     JRuby     Rhino-JavaScript     Gosu ___ qstntxt ___

Ich habe ein Projekt mit Gurke und Maven, ich benutze auch die JUnit.

Ich kann mein Projekt erfolgreich aus Eclipse ausführen und erstellen.

Nun möchte ich den Test von der Kommandozeile aus in einem anderen System ausführen, das (sollte) keine Eclipse oder Gurke installiert haben sollte. Ich habe eine Idee, dass wir eine JAR von jar erstellen können, können wir die Tests mit Java CLI-Befehlen ausführen.

Im Folgenden sind die Kombinationen aufgeführt, aus denen ich meine Tests ausführen möchte. Ich füge auch die Dateien pom.xml und RunCukesTest.java ein.

pom.xml

%Vor%

RunCukesTest.java

%Vor%
  • Ich habe JUNIT Jar im Klassenpfad hinzugefügt.

Ich erzeuge Gläser auf zwei Arten,

1) Exportieren von JAR mit - & gt; Projekt - & gt; Export - & gt; JAR-Datei  Auswahl der Hauptklasse im letzten Schritt als: RunCukesTest, da ich hier die Hauptmethode für den Einstiegspunkt definiert habe (benötigen wir diese Hauptmethode in dieser Klasse ???)

Nach dem Export laufe ich unter Befehl,

1,1 %code% Ich bekomme einen Fehler: NoClassDef gefunden: org / junit / runner / JUnitCore

Also habe ich es so gemacht:

1.2 %code% Es sagte,

%Vor%

Es hat immer noch nicht funktioniert, also habe ich den RunCukesTest-Datei-Namespace an den letzten,
angehängt 1.3 %code%
 Es gab mir einen Fehler: Typ gurke.api.junit.Cucumber nicht vorhanden

2) Also gab ich die Option für den Export von Glas auf und ich versuche nun das JAR aus dem Maven Build zu verwenden. Ich wählte das POM aus, um mit Maven Build zu laufen, und es erzeugte 2 Gläser im Zielordner,

  

1 mit Namen xyz-0.0.1-SNAPSHOT mit 16kb anderen mit 2. mit
  xyz-0.0.1-SNAPSHOT-jar-mit-Abhängigkeiten mit 33mb

1) Ich habe die größere Datei mit Abhängigkeiten mit

ausgeführt %Vor%

Es gab mir eine Nachricht:

  

Kein Pfad zum Feature-Verzeichnis

2) Ich habe also versucht, den Namespace an die RunCukesTest-Datei anzuhängen,

%Vor%
  

Ich habe einen Fehler erhalten: keine Datei oder ein Verzeichnis gefunden

, wie natürlich der Fehler sagt, versucht es, eine Funktion innerhalb des Zielordners zu finden.

Auch hier möchte ich die JAR unabhängig von irgendwelchen Abhängigkeiten von Projektdateien auf einem anderen Computer wie einer ausführbaren Datei ausführen.

Jede Hilfe wäre willkommen. Danke.

    
___ answer36172386 ___

Ich teile das Problem, an das Sie denken, in zwei Teile.

  • Erstellen Sie ein ausführbares jar
  • Run Cucumber von Ihrer eigenen Hauptmethode

Das Erstellen eines ausführbaren Jars mit Maven kann auf verschiedene Arten erfolgen. Eine Möglichkeit, dies zu tun, ist hier beschrieben: Ссылка

Es ist ein kleines Beispiel, das sich nur darauf konzentriert, etwas von einer Befehlszeile wie folgt auszuführen:

java -jar ausführbares-beispiel.jar

Das Beispiel enthält alle Abhängigkeiten. Sie sind alle im selben Glas gebündelt. Keine Notwendigkeit für zusätzliche Gläser.

Der nächste Schritt wäre, Gurke von einer Hauptmethode auszuführen. Mein Ansatz wäre, einen main zu schreiben, der die Cucumber-Hauptmethode ausführt, die für die Befehlszeilenversion von Cucumber verwendet wird. Die Hauptmethode, die zum Ausführen von Gurke über eine Befehlszeile verwendet wird, befindet sich in der %code% -Bibliothek. Sie finden es unter %code%

Das Ausführen einer Hauptmethode aus einer anderen Hauptmethode geschieht folgendermaßen:

%Vor%

Argumente sind die Befehlszeilenargumente, mit denen Sie Gurke immer ausführen möchten.

Wenn Sie diese beiden Schritte ausführen, sollten Sie in der Lage sein, Gurke aus Ihrem eigenen ausführbaren Jar auszuführen, wo immer Sie einen Jar überhaupt ausführen können.

Beachten Sie, dass Sie die Bibliotheksversion für Gurke in Ihrem Pom mischen. Ich würde die neueste Version aller Bibliotheken verwenden. Vergleichen Sie %code% , %code% und %code% . Die neueste Gurkenversion ist 1.2.4. Ich würde es für alle verwenden.

Weitere Informationen zum Ausführen von Cucumber über eine Befehlszeile finden Sie hier: Ссылка

    
___ tag123cuumberjava ___ Cucumber-JVM ist eine reine Java-Implementierung von Cucumber, die die beliebtesten Programmiersprachen für die JVM unterstützt. Cucumber-JVM unterstützt die folgenden JVM-Sprachen: - Java - Groovy - Scala - Clojure - Jython - JRuby - Rhino JavaScript - Gosu ___
2
Antworten

Running Cucumber testet direkt vom ausführbaren jar

Ich habe ein Projekt mit Gurke und Maven, ich benutze auch die JUnit. Ich kann mein Projekt erfolgreich aus Eclipse ausführen und erstellen. Nun möchte ich den Test von der Kommandozeile aus in einem anderen System ausführen, das (sollte)...
22.03.2016, 08:59