在上下文方法中访问 Behat 命令行选项或标志
Access Behat command line option or flag in context method
是否可以从 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');
}
}
您可以使用环境变量来完成同样的事情:
/**
* @BeforeStep
*/
public function xdebugCookie()
{
if ('1' === getenv('XDEBUG')) {
$this->getSession()->setCookie('XDEBUG_SESSION', 'PHPSTORM');
}
}
这样你就可以在 运行 时定义变量:
XDEBUG=1 ./bin/behat
您也可以导出它以确保所有运行都启用(或禁用)调试器:
export XDEBUG=1
./bin/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');
}
}
您可以使用环境变量来完成同样的事情:
/**
* @BeforeStep
*/
public function xdebugCookie()
{
if ('1' === getenv('XDEBUG')) {
$this->getSession()->setCookie('XDEBUG_SESSION', 'PHPSTORM');
}
}
这样你就可以在 运行 时定义变量:
XDEBUG=1 ./bin/behat
您也可以导出它以确保所有运行都启用(或禁用)调试器:
export XDEBUG=1
./bin/behat