如何将Groovy配置中设置的值重写为Jenkins构建参数中的值



现在我有一个config.properties文件和一个singleton配置对象,它将文件读取到映射中,然后将所有系统变量也放在那里。因此,当我通过Jenkins运行测试时,具有相同名称的作业参数将覆盖config.properties文件中设置的值。

这对我来说是意料之中的正确行为。但我想把所有的配置和构建参数都保存在GebConfig.groovy文件中。

这里有两个问题:

  1. 现在,如果我需要在代码中获取GebConfig属性,我会使用browser.getConfig().getRawConfig().get("contextPath")。这是正确的调用还是有更好的方法从测试代码中的配置中获取参数?

  2. 如何实现将Jenkins作业的参数传递到Geb配置?我只想到先在System.getenv()中搜索:

    public String getProperty(String name) {
    Map<String, String> systemEnv = System.getenv();
    return systemEnv.get(name) ?: browser.config.rawConfig.get(name);
    }
    

所有构建工具都接受-DvarName=varValue将属性传递到GebConfig中。Gradle、Maven和Ant。因此,您可以在Jenkins Build步骤中传递该变量

编辑:下面是我的GebConfig,它处理默认值与传入变量

System.setProperty("geb.env.username", System.getProperty("geb.env.username", 'test'))

最新更新