2

Ich möchte meine Akzeptanztests in eine ausführbare JAR packen, wo alle notwendigen Bibliotheken enthalten sind, um die Tests auszuführen und die Berichte zu generieren. Ich möchte auch entweder alle Tests oder einen einzigen Test durchführen.Führen Sie ein einzelnes Gurken-Szenario aus einer ausführbaren JAR

Bisher bin ich in der Lage, alle Tests auszuführen, und obwohl Berichte an dem Speicherort generiert werden, den ich in serenity.properties angegeben habe, wird die index.html NICHT generiert.

Normalerweise würde ich meine Tests mit Maven Verify Ziel ausführen, die das Serenity-Maven-Plugin laufen würde, aber da ich von einem JAR laufen, bin ich mir nicht sicher, wie ich das gleiche erreichen kann.

Ich habe eine Hauptklasse, die wie folgt aussieht:

@RunWith(CucumberWithSerenity.class) 
@CucumberOptions(features = "classpath:com/cfhayes/test/LookupADefinition.feature") 
public class DefinitionTestSuite { 
    public static void main(String[] args) throws Exception { 
    JUnitCore.main("com.cfhayes.test.DefinitionTestSuite"); 
    } 
} 

Und meine Feature-Datei verwendet, so Tags, dass ich ein einzelnes Szenario ausführen angeben:

Feature: Lookup a definition 

    @TEST-0001 
    Scenario: Looking up the definition of 'apple' 
    Given the user is on the Wikionary home page 
    When the user looks up the definition of the word 'apple' 
    Then they should see the definition 'A common, round fruit produced by the tree Malus domestica, cultivated in temperate climates.' 

    @TEST-0002 
    Scenario: Looking up the definition of 'pear' 
    Given the user is on the Wikionary home page 
    When the user looks up the definition of the word 'pear' 
    Then they should see the definition 'An edible fruit produced by the pear tree, similar to an apple but elongated towards the stem.' 

Ich hoffe, es ist ein Weg, wie ich JVM Args mit der ausführbaren JAR verwenden kann, die mir irgendwie erlauben würde, die Gurkenoptionen einzustellen. Ich habe versucht, etwas wie folgt:

java -jar my-test-jar.jar -Dcucumber.options="--tags @TEST-0001" 

... aber das läuft immer noch alle Tests.

Alle Ideen würden sehr geschätzt werden.

+0

Genau das, was ich gerade brauche. Hast du irgendeine Lösung gefunden? – yuva

+1

Ja, das Problem, das ich hatte, war einfach die Reihenfolge der Befehlszeilenargumente. Hier ist die Befehlszeile, die ich verwenden musste: java -Dcumber.options = "- Tags @ TEST-0001" -jar my-test-jar.jar Keine anderen Änderungen wurden benötigt. – cfhayes

+1

Hier ist ein Arbeitsbeispiel, das Sie sich ansehen können: https://github.com/ch88251/cucumber-senenity-example – cfhayes

Antwort

2

Die Art, wie Sie den Befehl erstellen, ist möglicherweise falsch. Die Gurkenoptionen werden als Argumente für com.cfhayes.test.DefinitionTestSuite::main anstelle der Java-Option verwendet. Versuchen Sie dies:

java -Dcucumber.options="--tags @TEST-0001" -jar my-test-jar.jar 

oder behandeln Sie die Gurkenoptionen in Ihrer Klasse statt.

+0

Hallo Mykola, Ihr Vorschlag hat perfekt funktioniert. Vielen dank für Deine Hilfe! – cfhayes

+0

Vielleicht möchten Sie die Frage dann schließen, indem Sie meine Antwort akzeptieren. –

Verwandte Themen