переменные — Как получить переменные среды wercker из php?

В настоящее время я пишу модульные тесты для API, написанного на PHP. Этот API реализует шаг RateLimiting перед каждым запросом, и я хочу избежать этого шага, пока я тестирую приложение.

Теперь, если я хочу запустить тесты локально, я просто должен проверить локальный IP-адрес, который является «:: 1». Но у меня проблемы с доступом к переменным среды, которые предоставляет мой сервер непрерывной интеграции (я использую wercker).

Если я запускаю это из теста PHPUnit:

var_export(isset($_SERVER["CI"]) || isset($_SERVER["wercker"]));

я получил true, но если я делаю что-то подобное, прежде чем применять ограничение скорости:

if (isset($_SERVER["CI"]) || $request->getIp() === "::1") {
return;
} else {//...

тесты Веркера продолжают терпеть неудачу, потому что он никогда не пропускает логику ограничения скорости. Обратите внимание, что первый фрагмент кода запускается из теста в PHPUnit, а второй является частью серверного приложения.

Что я делаю не так с переменными среды?

Пожалуйста, дайте мне знать, если я должен предоставить дополнительную информацию или документацию.

3

Решение

Я смог заставить его работать с помощью PHP getenv функция

if (getenv("CI") ||  $request->getIp() === "::1") {
return;
} else {//...
0

Другие решения

Чтобы отобразить все переменные среды на сервере Wercker, добавьте этот шаг (например, в разделе сборки):

build:
steps:
- script:
name: show env vars
code: env
0

По вопросам рекламы [email protected]