Zerocode: установить системное свойство в файле конфигурации хоста. - PullRequest
0 голосов
/ 22 мая 2019

Конфигурация: zerocode-tdd.1.3.2

$ {HOST} Во время выполнения системное свойство устанавливается с опцией -D java. Все хорошо.

Проблема / Что мне нужно: Во время модульного тестирования системное свойство не установлено, а хост не разрешен. Приложение использует Junit и Zerocode, хотело бы просто настроить Zerocode для установки системного свойства.

Пример:

host.properties

web.application.endpoint.host:${host}
web.application.endpoint.port=
web.application.endpoint.context=

Подробнее: Требование только для конфигурации. Невозможно ввести новый код Java или записи в IDE.

Есть какая-нибудь помощь? Любые идеи приветствуются.

Ответы [ 2 ]

1 голос
/ 21 июля 2019

Эта функция доступна в версии с нулевым кодом 1.3.9 и выше. Пожалуйста, используйте заполнитель как ${SYSTEM.PROP:host} например ${SYSTEM.PROPERTY:java.vendor} разрешается до Oracle Corporation или Azul Systems, Inc.

Пример ссылки: https://github.com/authorjapps/zerocode/blob/master/README.md#general-place-holders

0 голосов
/ 23 мая 2019

Нашел решение, но не уверен, что это правильный путь.

Шаг 1 : создание файла конфигурации и загрузка системных свойств.

Config.java

public class Config {

    public Map<String, Object> readProperties(String optionalString) {
        Map<String, Object> propertiesMap = new HashMap<>();
        final String host = System.getProperty("host");

        propertiesMap.put("host", host);

        return propertiesMap;
    }
}

Шаг 2 : Добавить шаг (перед другими шагами) для использования загруженных свойств в файле .json.

test.json

{
    "scenarioName": "Test ...",
    "steps": [
         {
            "name": "config",
            "url": "com.test.Config",
            "operation": "readProperties",
            "request": "",
            "assertions": {}
        }
    ]
}

Шаг 3 : использовать загруженное свойство в настройке шага

test.json

 {
        "scenarioName": "Test ...",
        "steps": [
             {
                "name": "config",
                "url": "com.test.Config",
                "operation": "readProperties",
                "request": "",
                "assertions": {}
            },
            {
                "name": "test",
                "url": "${$.config.response.host}/test/xxx",
                "operation": "GET",
                "request": {},
                "assertions": {
                    "status": 200
                 }
            }
        ]
    }

Вот и все, хотя это работает, но я ищу лучший подход.

Некоторые возможные варианты, которые я пробую:

  • Общий шаг для загрузки / конфигурации (в одном месте)
  • Непосредственное использование свойств как {host} в файлах json
  • Пользовательский клиент

Снова приветствуется любая помощь / идеи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...