2016-12-30 33 views
0

我已经升级,从2.1.7我codeception版本2.2.5.在一个整合的测试情况下,我访问使用当前环境后不整合的测试访问在2.1.7版本工作正常,但在2.2.5版本我得到错误:

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

我在图书馆查,发现

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

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

我试着用命令生成的演员类:

$codecept build

仍是没有得到生成的演员类。

回答

0

测试格式在Codeception 2.2中完全重构,演员特质不见了。

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

单位格式:

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

在CEPT格式$情景变量始终是可用的,所以你可以简单地做

$scenario->current('env'); 

在CEST格式$scenario变量必须注射

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

情景的使用是documented

+0

$ this-> getMetadata() - > getEnv()返回一个空数组。 –

+0

请在https://github.com/Codeception/Codeception/issues提出问题这是一个非常具体的问题。 – Naktibalda