在 Codeception 1.8 中获取当前环境
Get current environment in Codeception 1.8
在 Codeception 2.1 中有一个新函数 current(),它有助于获取当前测试环境:$scenario->current('env')
我用的是1.8版本,没有这个功能。所以,我试图手动将方法 current() 添加到 Scenario class,但它没有帮助:
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];
}
我使用的是 2.1,但可能是这样的:
传递 \Codeception\Scenario $scenario 作为第二个参数
function testSometing(acceptanceTester $I, \Codeception\Scenario $scenario)
{
$env = $scenario->current();
}
在我读到这张票之前,我挣扎了一段时间:
https://github.com/Codeception/Codeception/issues/2225
在 Codeception 2.1 中有一个新函数 current(),它有助于获取当前测试环境:$scenario->current('env')
我用的是1.8版本,没有这个功能。所以,我试图手动将方法 current() 添加到 Scenario class,但它没有帮助:
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];
}
我使用的是 2.1,但可能是这样的:
传递 \Codeception\Scenario $scenario 作为第二个参数
function testSometing(acceptanceTester $I, \Codeception\Scenario $scenario)
{
$env = $scenario->current();
}
在我读到这张票之前,我挣扎了一段时间: https://github.com/Codeception/Codeception/issues/2225