Доступ к параметру командной строки Behat или флагу в методе контекста


Можно ли получить значение параметра командной строки или посмотреть, установлен ли флаг командной строки из метода контекста Behat?

Я использую крючок, как описано здесь, чтобы установить файл cookie сеанса xdebug перед выполнением шагов. Это работает нормально, но я хотел бы иметь возможность контролировать, установлен ли файл cookie из командной строки.

В настоящее время у меня есть что-то вроде этого (упрощенно):

/**
 * @BeforeStep
 */
public function xdebugCookie()
{
    $this->getSession()->setCookie('XDEBUG_SESSION', 'PHPSTORM');
}

Но в идеале я хотел бы иметь возможность делать что-то вроде это:

/**
 * @BeforeStep
 */
public function xdebugCookie()
{
    if ($this->cliFlagSet('xdebug')) { // does this kind of functionality exist?
        $this->getSession()->setCookie('XDEBUG_SESSION', 'PHPSTORM');
    }
}
Author: Hugh Grigg 葛修远, 2015-07-02

1 answers

Вы можете использовать переменную среды для достижения того же самого:

/**
 * @BeforeStep
 */
public function xdebugCookie()
{
    if ('1' === getenv('XDEBUG')) {
        $this->getSession()->setCookie('XDEBUG_SESSION', 'PHPSTORM');
    }
}

Таким образом, вы можете определить переменную во время выполнения behat:

XDEBUG=1 ./bin/behat

Вы также можете экспортировать его, чтобы убедиться, что все запуски включают (или отключают) отладчик:

export XDEBUG=1
./bin/behat
 1
Author: Jakub Zalas, 2015-07-04 10:40:01