gradle - cucumber 2.4.0 标签不适用于 Gradle 4.6

标签 gradle junit cucumber cucumber-jvm junit5

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

在开发中,我想运行 Eat cukes 场景:

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

在专业版中,我想运行“吃蘑菇”场景:
./gradlew -Dcucumber.options="--tags @pro" clean test

问题是 gradle/cucumber 似乎忽略了cucumber.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 将测试执行 fork 到不同的 JVM 中,因此不会保留初始系统属性

将此添加到您的 gradle 文件中
test { systemProperty "cucumber.options", System.getProperty("cucumber.options") }

关于gradle - cucumber 2.4.0 标签不适用于 Gradle 4.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49919757/

相关文章:

spring - 在gradle 2.12和2.13中使用spring-boot的奇怪错误

gradle - 这个在 groovy 中看起来像闭包的代码是什么意思?

Java 反射 : Getting fields and methods in declaration order

iphone - 我如何向下滚动 UITable View ,直到我在 Calabash 中看到标签为 "Value"的单元格

cucumber - 在运行时提取 cucumber 步骤名称

maven - 如何为本地 .m2 存储库设置 archiveBaseName

eclipse - OSGI Gradle Unresolved 要求 : Import-Package: com. opencsv;版本 ="[3.8.0,4.0.0)"Liferay IDE 3

java - 使用 Comparable[] 编写二分查找方法的 JUnit 测试

java - 构造函数调用必须是具有继承的构造函数中的第一个语句

ruby-on-rails - capybara :查找(元素)使用选择器来定位复杂的属性名称