我已将我的代码版本从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类。
答案 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。