2016-01-13 10 views
6

Ich möchte aus einer "AbstractBase_step" -Klasse in Java erweitern. Deshalb möchte ich einen Haken haben, wie:Gurke Klasse erweitern Schrittdefinitionen und Hooks

public abstract class AbstractBase_Steps { 
    protected Scenario scenario; 
    @Before 
    public void background(Scenario scenario) { 
     this.scenario = scenario; 
    } 
} 

, die für jeden Schritt Datei aufgerufen wird:

public abstract class Hello_Steps extends AbstractBase_Steps { 
} 

Als ich das bekomme ich

cucumber.runtime.CucumberException: Sie Es ist nicht erlaubt, Klassen zu erweitern, die Step-Definitionen oder Hooks definieren. Klasse Hello_Steps erweitert Klasse AbstractBase_Steps

Hat jemand einen Trick dafür?

EDIT: Für die Wiederverwendung der gleichen Schrittdefinitionen habe ich eine neue Klasse Common_Steps erstellt und in den Klebepfad aufgenommen. Daher sind die Definitionen für alle Feature-Dateien im Test verfügbar.

Antwort

1

Wie ich Ihr Problem verstehe, möchten Sie die Logik für Schritte reduzieren. Hier ist die Lösung.

1) Definieren eine gemeinsame Klasse in diesem Fall A mit Schritten in einem allgemeinen Paket wie co.com.test

2) definiert die Schritte Config das Basispaket verwenden

@CucumberOptions(format = {"pretty", "html:target/html/"}, 
features = {"src/test/resources/acceptance/general/general.feature"}, 
glue = {"co.com.test"}) 

3) Ist keine Vererbung von Klasse B mit bestimmten Schritten zu A

Es wird dazu führen, dass Schritte in allen Paketen gesucht werden und die gemeinsamen Schritte und die spezifischen Schritte finden.

Verwandte Themen