我正在尝试使用标签从 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/