Загрузка Фикстур перед каждым тестом (Fixture loading before each test case)

Всё про тестирование в Yii 2.0
Ответить
ODY
Сообщения: 24
Зарегистрирован: 2013.09.19, 12:18

Загрузка Фикстур перед каждым тестом (Fixture loading before each test case)

Сообщение ODY » 2018.03.23, 22:16

Привет всем, окружение: basic template, yiisoft/yii2: 2.0.15, php 7.0.
Написал фикстур, консольными командами все хорошо загружается. Но при запуске юнит тестов vendor\bin\codecept run unit почему то метод _fixtures() отрабатывает только 1 раз, в файле который выполняется первым (LoginFormTest). Во всех следующих тест-файлах метод _fixtures() не выполняется.
Более того я ожидаю что фикстуры должны обновляться перед каждым методом, или хотя бы для каждого тест-файла.
Буду благодарен за подсказки.

Nex-Otaku
Сообщения: 791
Зарегистрирован: 2016.07.09, 21:07

Re: Загрузка Фикстур перед каждым тестом (Fixture loading before each test case)

Сообщение Nex-Otaku » 2018.04.05, 12:00

А в исходники теста вы заглядывали?

LoginFormTest

Код: Выделить всё

    /**
     * @return array
     */
    public function _fixtures()
    {
        return [
            'user' => [
                'class' => UserFixture::className(),
                'dataFile' => codecept_data_dir() . 'user.php'
            ]
        ];
    }
По остальному - документация вам должна помочь.

SindBad
Сообщения: 71
Зарегистрирован: 2015.06.18, 10:53

Re: Загрузка Фикстур перед каждым тестом (Fixture loading before each test case)

Сообщение SindBad » 2018.04.27, 11:21

Перед каждым методом:

Код: Выделить всё

    protected $tester;
    
    public function _before()
    {
        $this->tester->haveFixtures([
            'user' => [
                'class' => UserFixture::className(),
                'dataFile' => codecept_data_dir() . 'user.php'
            ]
        ]);
    }

Ответить