Not clear what you're asking. Can you please reformulate and provide an example?

On 24 Sep 2013, at 16:42, Mirko Friedenhagen <[email protected]> wrote:

> Hello Mauro,
> 
> start/stop of the server should probably a fixture. How do you enforce
> that the step stopping the server is really executed?
> 
> @Corbin: a really dirty way would be to use the maven-antrun-plugin
> with two executions and via the java-Task execute the static methods
> for startup and shutdown during the phases pre-integration-test and
> post-integration-test (You could do this with two helper classes using
> the main-method). Something like (of course completely untested) in
> //project/build/plugins:
> --- snip ---
>            <plugin>
>                <groupId>org.apache.maven.plugins</groupId>
>                <artifactId>maven-antrun-plugin</artifactId>
>                <version>1.7</version>
>                <executions>
>                    <execution>
>                        <phase>pre-integration-test</phase>
>                        <id>start-my-server</id>
>                        <configuration>
>                            <target>
>                                <property name="maven.test.classpath"
> -                                          refid="maven.test.classpath" />
>                                <java failonerror="true" fork="true"
>                                      classpath="${maven.test.classpath}"
>                                      classname="org.example.ServerStart"
>                                      />
>                            </target>
>                        </configuration>
>                        <goals>
>                            <goal>run</goal>
>                        </goals>
>                    </execution>
>                    <execution>
>                        <phase>post-integration-test</phase>
>                        <id>stop-my-server</id>
>                        <configuration>
>                            <target>
>                                <property name="maven.test.classpath"
> -                                          refid="maven.test.classpath" />
>                                <java failonerror="true" fork="true"
>                                      classpath="${maven.test.classpath}"
>                                      classname="org.example.ServerStop"
>                                      />
>                            </target>
>                        </configuration>
>                        <goals>
>                            <goal>run</goal>
>                        </goals>
>                    </execution>
>                </executions>
>            </plugin>
> --- snap ---
> Now you should tell jbehave *not* to fail otherwise
> post-integration-test will not be run.
> 
> Regards
> Mirko
> Regards Mirko
> --
> http://illegalstateexception.blogspot.com/
> https://github.com/mfriedenhagen/
> https://bitbucket.org/mfriedenhagen/
> 
> 
> On Tue, Sep 24, 2013 at 4:45 PM, Mauro Talevi
> <[email protected]> wrote:
>> What's wrong with a dedicated steps class for the start/stop operations?
>> They are annotated methods, and thus steps, just as well.
>> 
>> The JUnitStories class is only meant to configure and execute stories, not
>> to hold executable methods.  It also provides the hook for IDEs which
>> support JUnit.
>> 
>> The Maven plugin knows nothing of JUnit and its annotations.   If you're
>> trying to go down this route you're likely to hit a brick wall.
>> 
>> Cheers
>> 
>> On 24 Sep 2013, at 15:18, "Corbin, J.D." <[email protected]> wrote:
>> 
>> As it turns out, we don't.  We are starting and stopping a server that is
>> required by our BDD scenarios and didn't want to put that logic in any step
>> classes.  The logical place to manage the starting and stopping of the
>> server, we believed, was in our class that extends JUnitStories.  We had
>> hoped there were some annotated lifecycle methods we could use for this, and
>> in fact did find that the JUnit @BeforeClass and @AfterClass methods worked
>> but only when you run the JUnitStories derived class as JUnit.  I couldn't
>> figure out how to configure the JBEHAVE-MAVEN-PLUGIN to run the class as a
>> JUnit like we do in Eclipse.
>> 
>> For now, we can construct and start the server in the constructor of the
>> aforementioned class.  THe shutdown of the server will happen when the JVM
>> goes away.  This is not ideal but will work for us.
>> 
>> So, we could use the JUnit specific annotations if we could get them to
>> execute when running our JUnitStories class via the maven plugin.
>> 
>> 
>> 
>> 
>> On Mon, Sep 23, 2013 at 4:50 PM, Mauro Talevi <[email protected]>
>> wrote:
>>> 
>>> Why do need to put the before/after methods in Embeddable class and not in
>>> a steps class?
>>> 
>>> On 23 Sep 2013, at 22:39, "Corbin, J.D." <[email protected]> wrote:
>>> 
>>> Hi, that does work for an InstanceStepsFactory, but we are using a
>>> GuiceStepsFactory.  I'll have to see if there is a way to extend this
>>> factory to support this.
>>> 
>>> 
>>> 
>>> On Mon, Sep 23, 2013 at 3:29 PM, Mauro Talevi <[email protected]>
>>> wrote:
>>>> 
>>>> The JBehave lifecycle annotations must found in the steps classes. That
>>>> said, you can register your class as a steps class.   Just pass the "this"
>>>> reference to the InstanceStepsFactory.
>>>> 
>>>> On 23 Sep 2013, at 21:35, "Corbin, J.D." <[email protected]> wrote:
>>>> 
>>>> I have a class that extends JUnitStories and specifies two methods that
>>>> use the JUnit specific annotations @BeforeClass @AfterClass.  Inside of
>>>> these methods I do some initialization for my test scenarios, like propping
>>>> up a test server.   So the BeforeClass method starts the server and the
>>>> AfterClass method shuts down the server.
>>>> 
>>>> When I run the class that extends JUnitStories as a JUnit test, it
>>>> executes the methods annotated with the beforeclass and afterclass just as
>>>> you might expect.  All scenarios execute and succeed when running in this
>>>> manner.
>>>> 
>>>> Now, when I run using maven (command line) and the jbehave-maven-plugin,
>>>> the JUnit (not really surprising) specific annotations are not executed and
>>>> therefore my server startup and shutdown logic is bypassed which prevents 
>>>> my
>>>> scenarios from executing.
>>>> 
>>>> How can I run the JBehave scenarios from the command line using Maven
>>>> such that my JUnit (or JBehave specific) annotated methods get executed?
>>>> 
>>>> I have tried using JBehave specific annotations like @BeforeStories,
>>>> @AfterStories,@BeforeTest, and @AfterTest (as well) in my class that 
>>>> extends
>>>> JUnitStories, but none of the methods with these annotations ever get
>>>> executed, either when running in Eclipse (as JUnit), nor Maven.
>>>> 
>>>> Any suggestions would greatly be appreciated.
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>    http://xircles.codehaus.org/manage_email
> 
> 

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to