The point that Gabor is making is a valid one and I tend to agree.

BDD is primarily intended to be used in a CI env, where you want to catch regressions. By definition to catch regressions one has to run all stories and scenarios.

But it may be sometimes useful to re-run just the failed stories.

On 13/08/2013 17:01, Selenium Learner 2013 wrote:
Ok Gábor.No issues, thanks for replying to the thread.

Collect failing tests with a script and run them selectively.
For above one, I already suggested, creating flat file with all scenarios inside it and then creating the story on the fly and run it but as per Mauro, its not possible with 3.8 stable release version.Currently I am finding difficult to log jira as cant log into jira application.If you've an access , can you please log a jira so that feature can be available in future release. Another solution I have is creating custom annotation for retry like we've given stories,named and if we can somehow put on step method then if scenario fails then it can re-run it after first execution cycle but don't how I can do it and whether it's feasible or not...

Please let me know if you've any questions..


On Tue, Aug 13, 2013 at 3:54 AM, Czigola Gábor <czig...@gmail.com <mailto:czig...@gmail.com>> wrote:

    I'd not include such logic in a test as a test should either fail
    or pass. Retry logic is prone to flaws. (Resources, transactions,
    pre-conditions could be dangling.)

    Why do you need to retry? I guess your tests could be
    unstable/undeterministic and you would prefer to try again before
    reporting a failure? Solutions:

    - Fix your environment, mocks, stubs, drivers and
    system-under-test to get stable deterministic results.

    - Collect failing tests with a script and run them selectively.

    Sorry that I can't help you further but it seems to me that there
    is an underlying problem that retriyng would not fix.


    On Tue, Aug 13, 2013 at 12:10 AM, Mauro Talevi
    <mauro.tal...@aquilonia.org <mailto:mauro.tal...@aquilonia.org>>
    wrote:

        No, the issue JBEHAVE-755 address a different concern:  that
        of retrying in the same execution run, not in a subsequent
        one, which is what you seem to be after (if I understood
        correctly).

        If you want to use the RestartingScenarioFailure, then as
        already said you need to implement yourself the logic for when
        it's thrown, by catching a known exception:


        @Given("user is on Home page")
            public void userIsOnHomePage() {
                try {
                    pages.home().open();
                } catch ( YourException e ) {
                    throw new RestartingScenarioFailure(e);
                }
            }

        Implementing the full retry logic is not trivial, as already
        said, and touches the internals of the runner.    I don't
        think it's possible to implement with the current low-level
        3.8 API.

        If you have problems accessing JIRA, please raise an issue at
        https://jira.codehaus.org/browse/HAUS.


        On 12/08/2013 15:28, Selenium Learner 2013 wrote:
        Ok, I tried for some time after having off on Sunday and
        found that I can't log in to Jira for some strange reasons
        even though I have an account on Xircles ..
        Nevertheless , I found one jira which is being opened since
        last year(https://jira.codehaus.org/browse/JBEHAVE-755)which
        <https://jira.codehaus.org/browse/JBEHAVE-755%29which> talks
        about retry logic , so can I put this comments in the same
        jira? pls advise..
        IF we need to implement the retry logic in Jbehave, would
        that be API level change which has to be released properly?
        I have one solution as creating a flat file with failed
        scenarios and creating a story on the fly..is this possible
        with current Jbehave 3.8 stable release version? Pls advise.
        Sorry for asking too many questions:(..
        Also , I had mistake in the code snippet in my previous
        mail..the correct code snippet can be given as
        @Given("user is on Home page")
public void userIsOnHomePage() throws RestartingScenarioFailure

        {
                pages.home().open();
            }

        but this is not enabling to run the failed scenario re-run
        again? Any more coding I'm missing?Pls advise.

        Awaiting the reply..



        On Sat, Aug 10, 2013 at 10:50 PM, Mauro Talevi
        <mauro.tal...@aquilonia.org
        <mailto:mauro.tal...@aquilonia.org>> wrote:

            No, you don't duplicate the method.   You need to
            implement some logic in the same method to catch a known
            exception (based on the logic implemented in your pages)
            and rethrow a RestartingScenarioFailure, where appropriate.

            Implementing a retry logic is possible, but not trivial.
            It involves persisting the results of the previous run
            which is not easy to do without taking into account the
            interaction with the embedding system.

            Feel free to raise a JIRA issue, it may get some ideas
            flowing.

            Cheers


            On 10/08/2013 16:29, Selenium Learner 2013 wrote:
            Hmm..
            So if I have a step defined as for an example:
             @Given("user is on Home page")
                public void userIsOnHomePage(){
            pages.home().open();
                }

            and I want to run this step again if it fails while
            running it through Jenkins Job then do I need to include
            something like
             @Given("user is on Home page")
                public void userIsOnHomePage() Throwable
            RestartingScenarioFailure("Failed scenario")
            )
            {
            pages.home().open();
                }

            in the code so that it can re-run again? Pls advise.

            Please let me know if you have any questions.
            PS: I think if Jbehave can include retry logic feature
            then it would be great as we can do it in TestNG which
            takes automation framework to the next level..Do I need
            to raise Jira if you permit?


            On Sat, Aug 10, 2013 at 8:07 PM, Mauro Talevi
            <mauro.tal...@aquilonia.org
            <mailto:mauro.tal...@aquilonia.org>> wrote:

                No, there is no such feature currently.

                What is possible is to implement some logic in your
                step to verify failure/success according to your
                criteria and, if failed, you can throw a
                RestartingScenarioFailure exception which will tell
                the runner to restart the scenario, i.e. re-execute
                the scenario steps.


                On 09/08/2013 14:49, Selenium Learner 2013 wrote:

                    Hi All,

                    Is it possible in Jbehave to run failed
                    scenarios once again after finishes jenkins job
                    like kind of Retry logic? Please advise .If
                    possible then any documentation available in
                    Jbehave?

                    Regards,
                    Selenium-777



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

                http://xircles.codehaus.org/manage_email









Reply via email to