如何在Cucumber Runner文件中传递参数以从特定文件夹运行文件

时间:2015-12-06 13:57:54

标签: jenkins cucumber build.gradle cucumber-jvm

我正在使用Gradle使用Serenity Cucumber框架。我已将其与Jenkins集成。我的要求是,作为一个Jenkins工作的一部分,我想从一个文件夹运行功能文件,并且作为下一个Jenkins工作特征文件的一部分应该被执行。您能否建议我如何在运行时将参数传递给Cucumber Runner文件。例如: 以下是我的专题文件

@RunWith(CucumberWithSerenity.class)
@CucumberOptions(features = "src/test/resources/Sanity/")
public class TestRunnerSerenity {
}

作为Sanity Build的一部分,我的所有测试用例都应该从src / test / resources / Sanity /文件夹中执行。那么我如何将此文件夹路径值传递给Cucumber Runner类运行时。这样我就可以在没有多个运行器文件和手动干预的情况下维护我的构建。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在Code,Gradle和Jenkins中需要做一些配置,这是一步一步

在Grade文件中,我将创建systemProperty函数。

        task prodTest(type: Test)
        prodTest{
             systemProperty 'test.folder', testFolder  
     }

   task "runProdTest" {
    dependsOn "clean", "cleanTest", "prodTest"
}

在常数类中, 创建静态最终字符串

public static final String TEST_FOLDER = system.getProperty("test.folder","FolderName")`

当您在本地运行时,由于外部参数不可用,它不会失败。

转到转轮文件,

@RunWith(CucumberWithSerenity.class)
@CucumberOptions(features = Constants.TEST_FOLDER)
public class TestRunnerSerenity {
}

现在詹金斯配置

Go to Jenkins - Configuration

应该有Invoke Gradle Script Script。您可以在“开关”下添加参数。你会告诉jenkis你

 -Ptest.folder="src/test/resources/Sanity/"

Tasks = runProdTest

你们都准备好了!!