Spring in Gurke integrieren

8

Ich versuche derzeit, Spring in meine Gurken-Tests zu integrieren. Ich habe eine benutzerdefinierte SpringFactory wie folgt:

Ссылка

aber der Code wird nicht aufgerufen. Was ist der beste Weg, um die Fabrik mit meinen Tests zu verbinden?

[Klärung von Kommentar zu gelöschter Antwort: Das Hauptproblem ist, dass mein Test Gurke als Hauptläufer hat, d. h. @RunWith (Cucumber.class), daher kann der SpringJUnit4ClassRunner hier nicht verwendet werden. Dies wird im obigen Link beschrieben, aber es gibt keine Beschreibung, wie gucura.xml gelesen wird. Ich habe eine neue SpringFactory hinzugefügt, aber es liest nicht die XML-Datei ....]

Update: Eigentlich habe ich ein bisschen weiter mit dem Hinzufügen von:

%Vor%

Allerdings habe ich @Autowired-Variablen, die nicht injiziert werden, da der Test von Cucumber ausgeführt wird.

Hat jemand anderes dieses Problem?

    
Reimeus 23.02.2012, 10:53
quelle

4 Antworten

5

Eine schnelle Google-Suche nach "Gurke Frühjahr Integration" bringt mich hier und hier . Wenn Sie cuke4duke verwenden, sieht das viel einfacher aus.

Das Beispiel scheint anzuzeigen, dass cuke4duke standardmäßig cucumber.xml von der Basis Ihres Klassenpfads lädt. Dies ist eine Spring-Konfigurationsdatei, die ein component-scan für mit @StepDefinition annotierte Klassen enthalten muss.

Sie müssen keine SpringFactory angeben, Sie müssen nicht die Annotation @RunWith verwenden, sondern nur eine Spring-Konfiguration und eine oder mehrere jvm-Eigenschaften bereitstellen.

    
Ryan Ransford 23.02.2012, 23:20
quelle
9

Update: Das Projekt cuke4duke ist jetzt veraltet und wurde durch Cucumber-JVM ersetzt.

Ich hatte auch das gleiche Problem und die Ursache war, dass gucura.xml nicht von der SpringFactory in gurke-spring-1.1.5.jar gelesen wurde. Der Spring DI-Test ist fehlgeschlagen, was zu NPEs geführt hat. Seit der Einreichung 448 lädt die Cucumber SpringFactory die Datei gurke.xml nicht mehr und Sie müssen @ContextConfiguration("classpath*:cucumber.xml") hinzufügen. in ALLEN Ihren Step-Definition-Klassen.

    
Diarmuid 25.04.2014 10:38
quelle
1

Ich habe gerade deine Frage gesehen. Wahrscheinlich fehlte die cucumber-spring Modulabhängigkeit. Ich habe das Repository aktualisiert und jetzt sollten alle Abhängigkeiten in Ordnung sein (ich verwende efeu).

    
Zsolt 04.10.2012 12:41
quelle
-1

Das Problem ist, dass bestimmte Versionen von Spring nur mit bestimmten Versionen von Cucumber-Spring und Cucumber-JVM funktionieren. Das Finden der Gewinnkombination kann zwei Tage dauern, in denen man mit den Jar-Versionen spielt. Beginnen Sie also mit einem "Hello World" BDD-Szenario, das eine einfache Injektion verwendet, von der Sie wissen, dass sie funktionieren wird, da Sie diese Jars optimieren müssen, bis Sie eine funktionierende Umgebung erhalten.

Der einfachste Weg ist, die neueste Version von Spring mit der neuesten Version von Cucumber-Spring abzugleichen. Die neuen Versionen von Spring werden besser unterstützt. Wenn Sie Ihren Frühling nicht einfach aktualisieren können, dann verwenden Sie Websites, die Maven-Abhängigkeiten zwischen verschiedenen Versionen von Cucumber-Spring und der Spring-Version, mit der Sie arbeiten, beschreiben.

Wenn Sie bei Ihrer Legacy-Version von Spring bleiben wollen (schlechte Idee, der Schmerz der Veränderung wird nur noch schlimmer werden), ist eine andere Strategie, JBehave für BDD-Tests zu verwenden.

    
Lance Kind 10.07.2015 18:54
quelle

Tags und Links