在上下文方法

时间:2015-07-02 11:10:01

标签: php bdd behat

是否可以获取命令行选项的值或查看是否在Behat上下文方法中设置了命令行标志?

我使用here所述的钩子在步骤之前设置xdebug会话cookie。这很好用,但我希望能够控制是否从命令行设置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');
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用环境变量来完成相同的操作:

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

这样你可以在运行behat:

时定义变量
XDEBUG=1 ./bin/behat

您也可以将其导出以确保所有运行启用(或禁用)调试器:

export XDEBUG=1
./bin/behat