Php 在Codeception中使用带有验收测试的夹具的正确方法是什么?
我正在使用Yii2,并希望在验收测试中包括夹具 通过单元测试,您将fixture trait添加到类中,然后使用fixture方法返回fixture数组,然后从Php 在Codeception中使用带有验收测试的夹具的正确方法是什么?,php,yii2,codeception,Php,Yii2,Codeception,我正在使用Yii2,并希望在验收测试中包括夹具 通过单元测试,您将fixture trait添加到类中,然后使用fixture方法返回fixture数组,然后从\u before()方法调用$this->loadFixtures(),从\u before()方法调用$this->unloadFixtures()。这很好用 在Cept验收测试中,不使用类,所以我不知道如何在这个过程中使用fixture 对于Cest文件,我尝试将fixtureTrait添加到Cest类,但没有成功。我是否应该将fi
\u before()
方法调用$this->loadFixtures()
,从\u before()
方法调用$this->unloadFixtures()
。这很好用
在Cept验收测试中,不使用类,所以我不知道如何在这个过程中使用fixture
对于Cest文件,我尝试将fixtureTrait添加到Cest类,但没有成功。我是否应该将fixture特性添加到Cest文件中
因此,在验收测试中使用夹具的正确方法是什么?在做了大量的谷歌搜索之后,我找到了一个令人满意的解决方案 对于Cept文件,由于它们不使用类,您必须在YAML配置中包括Yii2模块,但仅包括fixtures部分 在acceptance.suite.yml中:
modules:
enabled:
- WebDriver
- Yii2:
part:
- init
- fixtures
transaction: false
我使用的是selenium,因此我还启用了WebDriver模块。我还发现有必要设置事务:false
,否则我的登录无法正常工作。(可能是由于web请求无法使用事务数据) 然后我必须运行build命令以使
$I->haveFixtures()
方法可用
codeception build
我现在可以将装置作为Cept文件的一部分,因此:
use tests\fixtures\DBAddressFixture;
use tests\fixtures\DBCustomerFixture;
use tests\fixtures\OAuthClientsFixture;
/* @var $scenario Codeception\Scenario */
$I = new AcceptanceTester($scenario);
$I->wantTo("Check that the account information page exists and works");
$I->haveFixtures([
'customer' => DBCustomerFixture::className(),
'address' => DBAddressFixture::className(),
'auth' => OAuthClientsFixture::className()
]);
关于Cest文件。显然,它应该像向Cest类添加\u fixtures()
方法一样简单,尽管我还没有尝试过
以下是一些有用的链接:
什么?真的吗?这个问题是什么?我试着改写这个问题