在升级到2.2.5之后,在集成测试中无法访问Codeception $ env

时间:2016-12-30 12:37:05

标签: php phpunit codeception

我已将我的代码版本从2.1.7升级到2.2.5.在一个集成测试用例中,我使用以下方法访问当前环境:

$this->env

它在2.1.7版本中运行良好,但在2.2.5版本中我收到错误:

Undefined property: tests\integrational\AutoBillerTest::$env

我在图书馆检查了一下

vendor/codeception/codeception/src/Codeception/TestCase/Shared/Actor.php

文件在当前版本中不存在,但它在先前版本中存在。这个Actor类包含$ env变量。

我尝试使用命令生成actor类:

$codecept build

仍然没有生成Actor类。

1 个答案:

答案 0 :(得分:0)

测试格式在Codeception 2.2中被完全重构,并且Actor特征消失了。

在2.2环境中,可以从Cept和Cest格式的\ Codeception \ Scenario和单位格式的\ Codeception \ Metadata中检索(场景也从元数据中获取)。

单位格式:

$this->getMetadata()->getEnv()

在Cept格式中,$ scenario变量始终可用,因此您只需执行

即可
$scenario->current('env');

在Cest格式中必须注入$scenario变量

public function tryToTest(UnitTester $I, \Codeception\Scenario $scenario)
{
    $scenario->current('env');
}

场景的使用是documented