Cucumber 2.4.0标记不适用于Gradle 4.6

问题描述 投票:5回答:1

我正在尝试使用标记从Gradle运行Cucumber以运行不同的测试集

在开发人员中,我要运行Eat Cukes场景:

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

在专业版中,我想运行“食用蘑菇”方案:

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

问题在于,等级/黄瓜似乎忽略了cumber.options标签信息,并且始终运行所有测试。我已经用Maven尝试了相同的示例,并且可以正常工作。不幸的是,我需要使用Gradle来运行它。有什么想法吗?

[我的测试跑步者是junit-jupiter 5.1.0和junit-platform-launcher 1.1.0,junit-jupiter-engine 5.1.0和junit-vintage-engine 5.1.0。

@RunWith(Cucumber.class)
public class CucumberTest {

}

功能:

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

开发步骤定义:

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));
    }

}

专业步骤定义:

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));
    }

}
gradle junit cucumber cucumber-jvm junit5
1个回答
0
投票

Gradle将测试执行分叉到不同的JVM中,因此不会继承初始的System属性

将此添加到gradle文件中

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

© www.soinside.com 2019 - 2024. All rights reserved.