Codeception - 如何在 Helper 中获取当前环境配置 class
Codeception - How to get current environment configuration in Helper class
是否可以在 Codeception 的 Helper Class 中获取当前环境配置?
现在我将它作为 $env
变量从我使用此助手的 Cest 传递。
class FavoritesCest
{
public function _before(AcceptanceTester $I)
{
$I->loggedInIntoFrontend(LoginPage::LOGIN, LoginPage::PASSWORD, $I->getScenario()->current('env'));
}
...
}
在 Cest 中,我使用 $I->getScenario()->current('env')
,但在 Helper 中,我无法使用 Actor class 以这种方式获取环境。
// Helper Class
class Frontend extends Acceptance
{
public function loggedInIntoFrontend($name, $password, $env)
{ ... }
}
有人遇到过吗?
您可以使用以下方法在 Helper class 中获取当前环境:
// Helper Class
class Frontend extends Acceptance
{
private $currentEnv = '';
// This hook will be called before each scenario.
public function _before(\Codeception\TestInterface $test)
{
$this->currentEnv = $test->getMetadata()->getCurrent('env');
}
public function loggedInIntoFrontend($name, $password)
{
if ($this->currentEnv == 'my-env') {
...
}
}
}
是否可以在 Codeception 的 Helper Class 中获取当前环境配置?
现在我将它作为 $env
变量从我使用此助手的 Cest 传递。
class FavoritesCest
{
public function _before(AcceptanceTester $I)
{
$I->loggedInIntoFrontend(LoginPage::LOGIN, LoginPage::PASSWORD, $I->getScenario()->current('env'));
}
...
}
在 Cest 中,我使用 $I->getScenario()->current('env')
,但在 Helper 中,我无法使用 Actor class 以这种方式获取环境。
// Helper Class
class Frontend extends Acceptance
{
public function loggedInIntoFrontend($name, $password, $env)
{ ... }
}
有人遇到过吗?
您可以使用以下方法在 Helper class 中获取当前环境:
// Helper Class
class Frontend extends Acceptance
{
private $currentEnv = '';
// This hook will be called before each scenario.
public function _before(\Codeception\TestInterface $test)
{
$this->currentEnv = $test->getMetadata()->getCurrent('env');
}
public function loggedInIntoFrontend($name, $password)
{
if ($this->currentEnv == 'my-env') {
...
}
}
}