web-dev-qa-db-fra.com

Comment ignorer un scénario particulier dans le concombre?

  1. J'utilise du concombre pour alimenter le scénario et Java comme langue.
  2. Je dois ignorer un scénario particulier lors de l'exécution d'un test d'automatisation.
  3. J'ai essayé avec la syntaxe @ignore ci-dessous, cela ne fonctionne pas du tout.
  4. Il ne saute pas de scénario particulier, il continue d'exécuter tous les scénarios de test, que j'ai alimentés dans le fichier de fonctionnalité.

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
20
selvi

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).

MISE À JOUR 1

Exemple de scénario

@billing
Feature: Verify billing

  @important
  Scenario: Missing product description

  Scenario: Several products

Balises en cours d'exécution

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

21
Aravin

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:

  • ancien style : cucumber --tags ~@ignore
  • nouveau style : 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.

14
M. F.

*.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);
    }
}
12
Ran Galili
@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"}

3
RamanaMuttana

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.

3
Pysis

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

2
Code Rocker

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

1
user965884