Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I make cucumber run all the steps (not skip them) even if one of them fails?

Tags:

cucumber

I am using Cucumber with RubyMine, and I have a scenario with steps that verify some special controls from a form (I am using cucumber for automation testing). The controls don't have anything to do with each other, and there is no reason for the steps to be skipped if one in front of them fails.

Does anyone know what configurations or commands should I use to run all the steps in a scenario even if they all fail?

like image 719
Cristian M Avatar asked Jul 27 '11 08:07

Cristian M


People also ask

Why some steps are skipped in Cucumber?

Cucumber skips all steps after a failed step by design. Once a step has failed, the test has failed and there should be no reason to perform the next steps. If you have a need to run the additional steps, likely your scenario is testing too many different things at once.

How do you run all features of cucumbers?

Run Cucumber tests with JUnit In the Project tool window, right-click the package with step definitions and select New | Java Class. Name the new class (for example, RunCucumberTest ) and press Enter . In @CucumberOptions , specify the . feature file and the package with step definitions in your project (Glue).


1 Answers

I've seen a lot of threads on the Web about people wanting to continue steps execution if one failed. I've discussed with Cucumber developers: they think this is a bad idea: https://groups.google.com/forum/#!topic/cukes/xTqSyR1qvSc Many times, scenarios can be reworked to avoid this need: scenarios must be split into several smaller and independent scenarios, or several checks can be aggregated into one, providing a more human scenario and a less script-like scenario.

But if you REALLY need this feature, like our project do, we've done a fork of Cucumber-JVM. This fork let you annotate steps so that when they fail with a determined exception, they will let let next steps execute anyway (and the step itself is marked as failed).

The fork is available here: https://github.com/slaout/cucumber-jvm/tree/continue-next-steps-for-exceptions-1.2.4 It's published on the OSSRH Maven repository. See the README.md for usage, explanation screenshot and Maven dependency. It's only available for the Java language, tough: any help is welcome to adapt the code to Ruby, for instance. I don't think it will be a lot of work.

like image 153
Sebien Avatar answered Sep 20 '22 14:09

Sebien