2016-06-18 11 views
0

Ich baue ein Framework, das in der Lage ist, Selenium-Anweisungen und Gurken-Anweisungen auszuführen. Ich habe die Läufer für Gurken in einer separaten leeren Klasse mit dem folgenden Code erstelltJVM Gurken-Ausführung

import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
public class RunCukesTest { 
} 

Ich werde auch einen Prozessor für Selenium Anweisungen in einer separaten Klasse habe.

prop.load(ClassLoader.getSystemResourceAsStream("src/main/resources/runConfig.properties")); 
      if(prop.getProperty("instructionsheet").contains("InstructionSheets")){ 
       KeywordProcessor kp = new KeywordProcessor(); 
      }else if(prop.getProperty("instructionsheet").contains("FeatureFiles")){ 
       RunCukesTest runCukes = new RunCukesTest(); 
      } 

Wie kann ich die Gurke Läufer Klasse aus, wenn es sich um eine leere Klasse ist ?, kann ich für Gurken nur eine Instanz der Klasse Läufer schaffen? oder muss ich noch etwas spacifizieren

Antwort

0

@RunWith(Cucumber.class) wird verwendet, um Gurke mit der vorhandenen Infrastruktur für laufende JUnit Tests zu integrieren. Wenn Sie beginnen, Ihren eigenen Rahmen zu erstellen, lohnt es sich, andere Orte zu suchen. cucumber.api.cli.Main könnte ein guter Ort sein, um Ihre Reise zu beginnen.

0

Die Klasse RunCukesTest ist eine Klasse, die vom JUnit-Runner Cucumber.class ausgeführt wird, da sie mit @RunWith(Cucumber.class) versehen ist.

Mit anderen Worten, es wird ausgeführt, wenn Sie die Tests auf die gleiche Weise wie jede andere JUnit Klasse ausführen.

Die Klasse ist leer und muss leer sein, um eine Trennung der Ausführung von Gurke und die Schritte zur Ausführung zu erzwingen.

Wenn Sie Gurke aus einem anderen Kontext ausführen möchten, sagen Sie Ihr eigenes Framework, schauen Sie sich die Befehlszeilenschnittstelle an. Sie können seine main() aus jeder Java-Klasse ausführen, rufen Sie einfach die statische Methode und warten auf das Ergebnis.