Ok, thanks Mauro. I will try this approach, have different steps class with the specific logic, and if is needed I will create different steps (different names).
By the way, now I have a question related with Selenium.. Before I had only one step class and this one had injected selenium. So when this bean was initialized I already had selenium loaded. But now i can't do that with all the step classes. I'm using Selenium RC, there is any good practices about how to initialize selenium ? Thanks in advance, On Fri, Jan 3, 2014 at 11:28 AM, Mauro Talevi <[email protected]>wrote: > I don't understand your use case. > > Steps are meant to be reusable across all stories. If you want you can > implement the steps to be facades for different implementations via factory > objects, but I would avoid having one steps class specific to one story. > > The context can be reset before each scenario or story using the > @BeforeScenario/Story annotation. > > On 2 Jan 2014, at 18:43, Enric Ballo <[email protected]> wrote: > > Hi Mauro, > > There is no other solution ? because i have other stories that are > changes, moves... etc.. so I would like to have one story class for each > one, because the context is different. > > I'm reusing the same steps but different logic, for example: > > As a customer I want to have a 1P product Onnet residential ADSL (this for > DSLStories) > As a customer I want to have a 2P product Offnet residential FTTH (this > for fiberStories) > > So I have a class called AbstractCommonsSteps where i have the common > logic... and then i have the OrderDSLSteps and OrderFiberSteps where i have > the validations or specific logic for each one. > > So to do a Fiber order I can't load the same beans than order dsl... > that's why I want to have different stories, but I want all to be executed. > The stories should all look more or less the same, some with more steps.. > but at least have all the same idea. > > Witch strategy do you suggest to do ? > > Thanks in advance, > > > On Thu, Jan 2, 2014 at 6:31 PM, Mauro Talevi > <[email protected]>wrote: > >> The annotated embedder is meant as a configurable entry point for >> multiple stories, not just the single one. >> >> So you should have a OrderPDSLStories class and use it to run all the >> stories you need with same configuration. >> >> Here's an example: >> >> >> https://github.com/jbehave/jbehave-core/blob/master/examples/annotations/src/main/java/org/jbehave/examples/core/annotations/CoreAnnotatedEmbedder.java >> >> To use with Jenkins configure XML report format and use the >> jbehave-jenkins-plugin. >> >> Cheers >> >> >> On 02/01/2014 10:24, Enric Ballo wrote: >> >> Hi Mauro, >> >> With this annotated with options (generateViewAfterStories = true, >> ignoreFailureInStories = true, ignoreFailureInView = false), it works >> fine. And execute all the scenarios inside the sotry file.. and when is >> finished continue with the next story file. But After this I want to >> continue with the other Order1PDSLStory.java files, but dosen't do that. >> >> <plugins> >> <plugin> >> <groupId>org.jbehave</groupId> >> <artifactId>jbehave-maven-plugin</artifactId> >> <version>${jbehave.version}</version> >> <executions> >> <execution> >> <id>unpack-view-resources</id> >> <phase>process-resources</phase> >> <goals> >> <goal>unpack-view-resources</goal> >> </goals> >> </execution> >> <execution> >> <id>embeddable-stories</id> >> <phase>integration-test</phase> >> <configuration> >> <outputDirectory>${project.build.directory}</outputDirectory> >> <scope>test</scope> >> <includes> >> <!-- Order DSL --> >> *<include>**/Order1PDSLStory.java</include>* >> <include>**/Order2PSDSLStory.java</include> >> </includes> >> <generateViewAfterStories>true</generateViewAfterStories> >> <ignoreFailureInStories>true</ignoreFailureInStories> >> <ignoreFailureInView>true</ignoreFailureInView> >> <storyTimeoutInSecs>1600</storyTimeoutInSecs> >> </configuration> >> <goals> >> <goal>run-stories-with-annotated-embedder</goal> >> </goals> >> </execution> >> </executions> >> <dependencies> >> <dependency> >> <groupId>log4j</groupId> >> <artifactId>log4j</artifactId> >> <version>1.2.16</version> >> </dependency> >> </dependencies> >> </plugin> >> </plugins> >> >> So what happens is that executes *Order1PDSLStory.java file, *and >> execute all the story files inside... but if there is any error doesn't run >> the *Order2PSDSLStory.java. *Stops the execution and I only have the >> report of the *Order1PDSLStory.* >> >> *What I would like: * >> >> >> - I want to run Jbehave scenarios in *test* scope, and when any >> scenario fail, continue with the other stories (in order to execute all >> the >> scenarios in all the stories). >> - I also want to see in Jenkins the build in yellow if the build was >> not successful, and green it was all the tests ok. >> >> Thanks in advance, >> >> >> On Tue, Dec 31, 2013 at 7:58 PM, Mauro Talevi <[email protected] >> > wrote: >> >>> Annotated with options: >>> >>> @UsingEmbedder(generateViewAfterStories = true, ignoreFailureInStories = >>> true, ignoreFailureInView = false) >>> >>> Cheers >>> >>> On 31/12/2013 14:45, Enric Ballo wrote: >>> >>> I'm running Jbehave maven plugin with >>> run-stories-with-annotated-embedder. But when any scenario fails, then stop >>> all the other scenarios. But *I would like to run all the scenarios and >>> then do a report with the scenarios that fails*. Is it possible to do >>> this ?? >>> >>> I setup the jbehave strategy configuration to SilentlyAbsorbingFailure, >>> and also I tryed ignoreFailureInStories option... but it dosen't work for >>> me. I think I am missing something. >>> >>> This is my maven execution code when fails: >>> >>> [INFO] >>> ------------------------------------------------------------------------[INFO] >>> Reactor Summary:[INFO][INFO] Consumer Regression Test Suite >>> .................... SUCCESS [0.591s][INFO] Customer Regression Test Suite >>> Commons module ..... SUCCESS [2.678s][INFO] Customer Regression Test Suite >>> Core module ........ FAILURE [25:24.539s][INFO] >>> ------------------------------------------------------------------------[INFO] >>> BUILD FAILURE[INFO] >>> ------------------------------------------------------------------------[INFO] >>> Total time: 25:28.081s[INFO] Finished at: Mon Dec 16 15:42:02 CET >>> 2013[INFO] Final Memory: 71M/664M[INFO] >>> ------------------------------------------------------------------------[ERROR] >>> Failed to execute goal >>> org.jbehave:jbehave-maven-plugin:3.7.4:run-stories-with- >>> annotated-embedder (embeddable-stories) on project >>> consumer-regression-test-suite-core: Failed to run stories with >>> annotated embedder runner: Annotated embedder run failed with runner >>> org.jbehave.core.junit.spring.SpringAnnotatedEmbedderRunner@72f4abb9: >>> Failures in running stories: >>> ReportsCount[stories=2,storiesNotAllowed=0,storiesPending=0,scenarios=16,scenariosFailed=2, >>> scenariosNotAllowed=0,scenariosPending=0,stepsFailed=2] -> [Help 1] >>> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute >>> goal >>> org.jbehave:jbehave-maven-plugin:3.7.4:run-stories-with-annotated-embedder >>> (embeddable- stories) on project consumer-regression-test-suite-core: >>> Failed to run stories with annotated e >>> mbedder runner >>> at org.apache.maven.lifecycle >>> >>> -- Enric Ballo
