[QA] Best practices for long scenarios in Cucumber?

Jeff Hall jhall at wikimedia.org
Tue Dec 17 22:39:46 UTC 2013


Thanks for the great feedback Chris and Nik.

Once I get the basic test in place, I'll play around with re-factoring 
based on these suggested approaches and see which one brings maximum 
Cucumber bliss!

- Jeff


On 12/17/13 2:04 PM, Nikolas Everett wrote:
>
>
>
> On Tue, Dec 17, 2013 at 4:51 PM, Chris McMahon <cmcmahon at wikimedia.org 
> <mailto:cmcmahon at wikimedia.org>> wrote:
>
>
>
>
>     On Tue, Dec 17, 2013 at 2:42 PM, Nikolas Everett
>     <neverett at wikimedia.org <mailto:neverett at wikimedia.org>> wrote:
>
>         On Tue, Dec 17, 2013 at 4:26 PM, Jeff Hall
>         <jhall at wikimedia.org <mailto:jhall at wikimedia.org>> wrote:
>
>             I want to create a browser test (for Visual Editor) that
>             will repro a single continuous session where the user
>             makes multiple edits to the same page.  As I understand
>             it, Cucumber "Scenarios" each equate to a new user
>             session, which is not what I want, so the alternative
>             seems to be to construct a long, continuous scenario like
>             the following:
>
>
>         The second two implementations are somewhat debated.  Some
>         cucumber folks hate steps calling steps and some love it.  I'm
>         can see merit in both arguments.
>
>
>     Nik is a master of this (and I learned from the CirrusSearch
>     examples) but such things exist in the VE repo also:
>     https://git.wikimedia.org/blob/mediawiki%2Fextensions%2FVisualEditor/b922592902ad57f770b6810566b820aada74aa47/modules%2Fve-mw%2Ftest%2Fbrowser%2Ffeatures%2Fsupport%2Fhooks.rb
>
>     What I did with VE was to make the tests that loop like that be
>     runnable both with and without the REUSE_BROWSER env variable.
>      When running locally I turn on REUSE_BROWSER, but as you know,
>     Zelkjo objects to having REUSE_BROWSER in the production run, and
>     I think those objections are worth considering.
>
>     So bottom line might be to use a hook that is aware of the
>     REUSE_BROWSER env var.
>
>
>  I wouldn't want REUSE_BROWSER on Jenkins.  If you absolutely need to 
> have the something that spans lots of repeated actions I think it 
> should be one scenario.  I use REUSE_BROWSER in cirrus really just as 
> a speed hack more than anything else.
>
> For a scenario that really does need to do lots of edits over and over 
> again I'd go with a compound step.  I wouldn't make the step have 
> loops, though, as that would ruin cucumber's error reporting.  I abuse 
> that enough as it is....
>
> Nik
>
>
> _______________________________________________
> QA mailing list
> QA at lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/qa

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wikimedia.org/pipermail/qa/attachments/20131217/9dd996d3/attachment.html>


More information about the QA mailing list