fichier de fonction
@ActivateSegment
Feature: Test for Activate segment
Scenario: Login
Given I navigate to M
And I enter user name
And I enter password
And I login to MM
Scenario: Open grid
Given I choose menu
And I choose Segments menu
Scenario: Open segment creation page
Given I click on New button
And I click on Segment button
Utilisez la balise ~@tag_name
Pour exclure des scénarios avec une certaine balise
cucumber --tags ~@tag_name
Remarque J'ai utilisé ~
symbole.
Une chose à noter ici est que Cucumber se terminera avec un état de 1 si vos scénarios marqués @ wip réussissent (c'est un rappel qu'ils ne fonctionnent plus en cours depuis leur réussite).
@billing
Feature: Verify billing
@important
Scenario: Missing product description
Scenario: Several products
cucumber --tags @billing # Runs both scenarios
cucumber --tags @important # Runs the first scenario
cucumber --tags ~@important # Runs the second scenario (Scenarios without @important)
Document officiel: https://github.com/cucumber/cucumber/wiki/Tags
Selon Cucumber.io il existe 2 styles dans lesquels une expression de balise peut être définie. Pour votre cas spécifique, pour exclure les étapes ou fonctionnalités marquées avec @ignore, ces 2 styles se traduisent par:
cucumber --tags ~@ignore
cucumber --tags "not @ignore"
.À ma grande surprise, en utilisant le même cucumber-js v1.3.1 fonctionnant sur Node.js v6.9.2, j'ai trouvé que la version Windows n'acceptait que le nouveau style, tandis que celle de Linux n'acceptait que l'ancien style. Selon votre configuration, vous voudrez peut-être essayer les deux et voir si vous réussissez avec l'un d'eux.
*.fonctionnalité
@skip_scenario
Scenario: Hey i am a scenario
Given blah blah
And blah blah blah
CucumberHooks.Java
package CucumberHooks;
import cucumber.api.Scenario;
import cucumber.api.Java.Before;
public class CucumberHooks {
@Before("@skip_scenario")
public void skip_scenario(Scenario scenario){
System.out.println("SKIP SCENARIO: " + scenario.getName());
Assume.assumeTrue(false);
}
}
@ActivateSegment
Feature: Test for Activate segment
Scenario: Login
Given I navigate to M
And I enter user name
And I enter password
And I login to MM
Scenario: Open grid
Given I choose menu
And I choose Segments menu
@avoid
Scenario: Open segment creation page
Given I click on New button
And I click on Segment button
dans les options de concombre
dans la classe runner, utilisez les balises comme indiqué ci-dessous que vous ne voulez pas exécuter: balises = {"~ @ éviter"}
Je crois que la balise spéciale @wip
a déjà un support natif et peut être utilisé sans aucun autre ajout de code.
Il a même un commutateur de ligne de commande associé:
-w, --wip Fail if there are any passing scenarios.
En utilisant le JUnit runner class
et en référence à https://cucumber.io/docs/cucumber/api/#ignoring-a-subset-of-scenarios
Vous pouvez créer votre propre balise ignore
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(tags = "not @ignore")
public class RunCucumberTest {
}
Ensuite, étiquetez simplement le scénario comme suit:
@ignore
Scenario: Check if all the 3 categories of cats are displayed
Given I open the Cats App
When I view the home screen
Then I should see all three cats categories displayed
Depuis la ligne de commande, vous pouvez écrire
mvn test -DCucumber.options = "- balise '@login et non @grid'"
mettre des guillemets doubles ("") à l'extérieur et des guillemets simples (') à l'intérieur