Как переопределить значение, которое установлено в конфигурации Groovy, значением из параметра сборки Jenkins - PullRequest
0 голосов
/ 13 ноября 2018

На данный момент у меня есть файл config.properties и одноэлементный объект конфигурации, который считывает файл на карту, а затем также помещает туда все системные переменные. Поэтому, когда я запускаю свои тесты через 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);
    }
    

1 Ответ

0 голосов
/ 13 ноября 2018

Все инструменты сборки принимают -DvarName = varValue для передачи свойств в GebConfig. Gradle , Maven и Ant .Таким образом, вы пропустите эту переменную на шаге Jenkins Build

Edit: ниже приведен мой GebConfig, который обрабатывает значения по умолчанию и передаваемые в переменных

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