2017-12-22 4 views
-1

Ich bin neu in Gurke und ich automatisiere ein Szenario. Anfangs habe ich meine Feature-Dateien im Pfad C: \ Benutzer \ test \ eclipse-workspace \ Automation \ src \ test \ resources \ featureFile abgelegt. Dann habe ich die Feature-Dateien in einen anderen Pfad verschoben (C: \ Benutzer \ test \ eclipse-workspace \ Automatisierung \ src \ test \ com \ test \ automation \ features). Ich habe dasselbe in CucumberOptions wie unten gezeigt aktualisiert.Alte Feature-Datei-Pfad wird auch nach dem Aktualisieren eines neuen Pfads verwendet

Aber wenn ich versuche, das Feature auszuführen, erhalte ich die folgende Ausnahme, die Feature-Datei nicht gefunden wird. Hier ist der in der Ausnahme gezeigte Pfad der alte Pfad. Ich bin nicht sicher, woher es abgerufen wird, da ich den neuen Pfad in Gurkenoptionen aktualisiert habe. Können Sie mir bitte helfen, die Ursache dieses Problems zu verstehen?

Exception in thread "main" java.lang.IllegalArgumentException: Kein Datei oder das Verzeichnis: C: \ Benutzer \ test \ eclipse-Arbeitsplatz \ Automation \ src \ test \ resources \ featureFile \ Self_Service_Home_Page_Personalizations.feature bei cucumber.runtime.io.FileResourceIterator $ FileIterator. (FileResourceIterator.java:54) bei cucumber.runtime.io.FileResourceIterator. (FileResourceIterator.java:20) bei cucumber.runtime.io.FileResourceIterable.iterator (FileResourceIterable.java:19) um gurke.runtime.model.CucumberFeature .loadFromFeaturePath (CucumberFeature.java:103) bei cucumber.runtime.model.CucumberFeature.load (CucumberFeature.java:54) bei cucumber.runtime.model.CucumberFeature.load (CucumberFeature.java:34) bei gurke.runtime.RuntimeOptions.cucumberFeatures (RuntimeOptions.java:235) bei gurke.runtime.Runtime.run (Runtime.java:110) um gucluc.api.cli.Main.run (Main.java:36) um cucumber.api.cli.Main.main (Main.java:18)

+0

Es gibt ein zusätzliches 'Java' in dem Wert, der für Features festgelegt wurde. Der Teil 'Java' fehlt in dem Teil, in dem Sie die neue Ordnerhierarchie erwähnen. – Grasshopper

+0

Siehe den letzten Punkt - Mögliche Duplikate von [Testschrittklasse nicht instanziieren] (https://stackoverflow.com/questions/47925875/cannot-instantiate-test-steps/47927644#47927644) – DebanjanB

Antwort

0

Es gibt ein paar Punkte, die Sie darauf achten müssen, wie folgt:

  • Per Best Practices cerate das Verzeichnis features die die featurefile(s) streng durch Ihr enthalten IDE nur (nicht durch andere Software Notepad oder Textpad oder SubLime3) laut Bild unten (New ->File) :

CO_Self_Service_Home_Page_Personalizations

  • Erstellen Sie die featurefile heißt CO_Self_Service_Home_Page_Personalizations.feature innerhalb features Verzeichnis streng durch Ihre IDE nur.
  • Halten Sie Ihre Project Structure einfach durch das Verzeichnis Platzieren des featurefile (n) nur unter Project Workspace enthält. Für Featurefiles Gurke arbeitet mit Verzeichnisnamen.So erstellen Sie die Funktionen Verzeichnis direkt unter Ihrem Projektraum Automation (gleiche Hierarchie wie src). So ist die Lage des Self_Service_Home_Page_Personalizations.feature wird:

    C:\Users\test\eclipse-workspace\Automation\features\Self_Service_Home_Page_Personalizations.feature 
    
  • Wieder, wie in Ihrer Class Datei mit @CucumberOptions Sie erwähnt haben glue = {"StepDefinitions" } sicherzustellen, dass die Class Datei @CucumberOptions enthält, in der ähnlich sein müssen Hierarchie wie die folgende Abbildung:

Cucumber_Project_Structure

  • So Ihre CucumberOptions wird wie folgt sein:

    @CucumberOptions(features = {"features" }, glue = {"StepDefinitions" }) 
    
  • Führen Sie Ihre Test

Hinweis: Nicht move/copy Merkmal file(s)/directory(ies). Löschen Sie die unerwünschte und create eine neue eine durch Ihre IDE nur.

Verwandte Themen