Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Использование различных сред кодирования

Автор вопроса: woodgateОтветов: 1

Я работаю над некоторыми модульными тестами для API, используя Codeception. Идея состоит в том, чтобы убедиться, что каждый вызов API возвращает ожидаемые коды ответов и объект JSON в нужном формате.

У меня проблема в том, что мне нужно использовать разные URL-адреса в зависимости от того, является ли сервер localhost, тестовым сервером или рабочим.

Я не могу использовать значения $_SERVER['SERVER_NAME'], потому что тесты не выполняются через веб-браузер.

Здесь http://codeception.com/docs/07-AdvancedUsage#Environments объясняется, что некоторые среды могут быть установлены путем изменения файла конфигурации. В документации не объясняется, как изменить файл конфигурации, чтобы использовать его в собственных модульных тестах.

Я хотел бы установить некоторые среды, такие как local, test, production, а затем, внутри моих классов модульного тестирования, узнать, что URLs использовать. Каждая среда будет иметь разные URL-адреса.

Я прочитал документацию, но я не могу найти способ сделать это.

Знаете ли вы какой-либо способ добиться того, что мне нужно?

  • Согласитесь, в документации неясно, является ли конфигурация среды специфичной для пакета, хотя, поскольку вложенные конфигурации объединены с родительской конфигурацией (codeception.yml), должна быть возможность настраивать среды в родительской конфигурации. также. Motin 15.04.2014
  • Вот учебник, который я сделал для этого: wp-bdd.com/multiple-environments . Среды могут быть любыми, разные браузеры, разные версии, разные данные и т.д. John Dee 14.03.2018

unit-testingphpcodeception

Ответы

Ответ 1 · рейтинг 13 · hidro

Убедитесь, что ваша версия кода не ниже 1.8, так как среда поддерживается только с версии 1.8.

Ниже приведена наша настройка для кодирования, указанная в api.suite.yml, с модулями PhpBrowser и REST, включенными для тестирования BDD и API:

...
env:
    local:
        modules:
            config:
                PhpBrowser:
                    url: http://local.example.com/
                REST:
                    url: http://local.example.com/v1/
    integration:
        modules:
            config:
                PhpBrowser:
                    url: http://integration.example.com/
                REST:
                    url: http://integration.example.com/v1/
    staging:
        modules:
            config:
                PhpBrowser:
                    url: http://staging.example.com/
                REST:
                    url: http://staging.example.com/v1/

При запуске команды codecept вам необходимо указать параметр --env, чтобы указать, какую среду должны использовать тесты.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы