Las etiquetas de Cucumber 2.4.0 no funcionan con Gradle 4.6

1 minuto de lectura

avatar de usuario de codependiente
codependiente

Estoy tratando de ejecutar Cucumber desde Gradle usando etiquetas para ejecutar diferentes conjuntos de pruebas

En desarrollo, quiero ejecutar el escenario Eat cukes:

./gradlew -Dcucumber.options="--tags @dev" clean test

Y en pro quiero ejecutar el escenario Comer champiñones:

./gradlew -Dcucumber.options="--tags @pro" clean test

El problema es ese gradle/cucumber parece estar ignorando la etiqueta cucumber.options información y siempre ejecuta todas las pruebas. He probado el mismo ejemplo con Maven y funciona. Desafortunadamente necesito esto para ejecutar con Gradle. ¿Algunas ideas?

Mi corredor de pruebas es junit-jupiter 5.1.0 con junit-platform-launcher 1.1.0, junit-jupiter-engine 5.1.0 y junit-vintage-engine 5.1.0.

@RunWith(Cucumber.class)
public class CucumberTest {

}

Característica:

Feature: Restaurant

  @dev
  Scenario: Eat cukes

    Given I have 10 cukes in my belly
    Then I eat 1 more cukes

  @pro
  Scenario: Eat mushrooms

    Given I have 10 mushrooms in my belly
    Then I eat 1 more mushrooms

Definición de paso de desarrollo:

public class RestaurantStepDef implements En {

    public RestaurantStepDef() {
        Given("I have (\\d+) cukes in my belly", (Integer cukes) -> System.out.format("Cukes: %n\n", cukes));
        Then("I eat (\\d+) more cukes", (Integer number) -> assertEquals((Integer) 2, number));
    }

}

Definición de paso profesional:

public class RestaurantStepDef2 implements En {

    public NavegationStepDef2() {
        Given("I have (\\d+) mushrooms in my belly", (Integer cukes) -> System.out.format("Mushrooms: %n\n", cukes));
        Then("I eat (\\d+) more mushrooms", (Integer number) -> assertEquals((Integer) 2, number));
    }

}

  • ¿Esto ayuda? stackoverflow.com/questions/21406265/…

    – Peter Ledbrook

    19 de abril de 2018 a las 13:21

  • ¡Ayudó de verdad! ¡Gracias!

    – codependiente

    19 de abril de 2018 a las 14:12

Gradle bifurca la ejecución de la prueba en una JVM diferente para que las propiedades iniciales del sistema no se transfieran

Agregue esto a su archivo gradle

test {
systemProperty "cucumber.options", System.getProperty("cucumber.options")
}

¿Ha sido útil esta solución?