通过Jenkins参数化JUnit CucumberOptions

时间:2018-08-09 14:40:08

标签: java jenkins ant automation cucumber

我正在忙于用Java编码的BDD自动化项目。我们使用Cucumber运行BDD。我们用来启动运行的JUnit类如下:

@RunWith(Cucumber.class)
@CucumberOptions(
        plugin = {"usage", "json:target/cucumber.json", "html:target/cucumber", "com.cucumber.listener.ExtentCucumberFormatter:"},
        glue = {"BDD.step_definitions"},
        features = {"Unit-Tests\\Features"},
        dryRun = false,
        monochrome = false,
        strict = true
)

我遇到的问题是我想通过Jenkins参数化CucumberOptions,理想情况下是通过Jenkins选择参数设置要素文件或场景名称。

我正在使用AntBuild在Jenkins上构建和测试我的项目。是否可以在构建XML上设置CucumberOptions?

2 个答案:

答案 0 :(得分:1)

您有兴趣了解如何将参数发送给在Jenkins中运行的Java进程。

可以这样设置黄瓜选项:

-Dcucumber.options="--help"

如果您是从Maven运行的,则如下所示:

mvn test -Dcucumber.options="--help"

可以通过以下方式运行特定标签:

-Dcucumber.options="--tags @wip"

更多细节可以在Cucumber docs或我不久前写的blog post中找到。

答案 1 :(得分:1)

我使用这种方式来参数化 CucumberOptions,如标签、名称或功能:

这里我正在使用 CucumberOptions 运行一个特定的测试

@CucumberOptions(
        features = {"src/test/resources/feature/"},
        glue = {"com.testautomation.test.stepdefinitions"},
        tags={"@jobs"},
        name= Constants.FILTER_NAME_PROPERTY_NAME
)

你需要做的就是从 import io.cucumber.core.options.Constants 导入 Costants 并设置系统环境变量cucumber.filter.name