Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Получение текущей environment (среды) в Codeception 1.8

environment
codeception
Теги: #<Tag:0x00007f7b697c1b18> #<Tag:0x00007f7b697c1960>

(Marija Plotņikova) #1

В версии Codeception 2.1 появилась функция current, с помощью которой можно получить текущую среду (environment): $scenario->current(‘env’)
Использую версию 1.8, пыталась добавить в нее эту функцию, добавляя в Scenario.php:

  protected $env = array(); 
  protected $currents = array();

...

public function __construct(\Codeception\TestCase $test, $currents = array()) 
    { 
                $this->test = $test; 
                $this->currents = $currents; 
    } 
 
 ...

    public function env($env) 
 
    { 
 
        if (!is_array($env)) { 
            $this->env[] = $env; 
            return; 
        } 
        foreach ($env as $e) { 
            $this->env($e); 
        } 
    }

...

public function current($key) { 
     
        if (!isset($this->currents[$key])) { 
            echo $this->currents[$key]; 
           throw new TestRuntime("Current $key is not set in this scenario"); 
        } 
        return $this->currents[$key]; 
    }

Но, толку от этого нет, массив пуст, выдает ошибки Undefined index: env; Current env is not set in this scenario
Что я делаю не так/может есть какие-то другие варианты, как можно добиться нужного результата?


(Michael Bodnarchuk) #2

А что мешает обновиться до последней версии?
Старые версии сейчас не поддерживаются и увы, я и сам уже не помню можно ли там было получить environment в тесте


(Marija Plotņikova) #3

Используем PHP 5.3.10, в последние версии Codeception, я так понимаю, для версий поновее только


(Michael Bodnarchuk) #4

Да, там только 5.4. Впринципе вы можете проект оставить на 5.3, а тесты уже на 5.4 писать… Если вас такой вариант устроит. Просто поговорите с начальством - PHP 5.3 уже пару лет как не поддерживается. А 5.4 полностью с ним совместимый.