Откат фикстур и изменений в базе при Unit-тестах

Добрый день! Пробую писать юнит тесты для Yii2 проекта и возникла проблема, что если в ходе теста происходила запись в базу, то эти изменения не откатываются после окончания теста.
unit.suite.yml :

class_name: UnitTester
modules:
    enabled:
        - Yii2:
            part: ORM
            configFile: 'codeception/config/unit.php'
            cleanup: true

В самом тесте есть такой код:

$shop = new Shop([
        'user_id' => 64836119547434,
        'title' => 'shop1',
    ]);
    $shop->scenario = Shop::SCENARIO_CREATE;
    $shop->save();

Аналогичная проблема с фикстурами, они накатываются но не очищаются после теста. Может кто знает в чем проблема?

Это в настройках базы делается, Db - Codeception - Documentation

Может проблема в том, что транзакция почему-то не стартует?
Проверьте выполняется ли это условие https://github.com/Codeception/Codeception/blob/2.1/src%2FCodeception%2FModule%2FYii2.php#L80

Сначала тоже подумал что транзакция не стартует, посмотрел дебагером, это условие выполняется, так же как и условие для отката транзакции:
https://github.com/Codeception/Codeception/blob/2.1/src%2FCodeception%2FModule%2FYii2.php#L93

ну и давайте будем честными, что это не Unit тесты

3 лайка

тогда вероятнее всего данные пишутся в другом конекшне…

да, так и есть, но только не совсем понятно как решить проблему то?! Рисовать костыли в before и after? У меня вообще получается внутри теста один коннекшн со своей транзакцией, а внутри MyAwesomeFixture класса (yii2) другой коннекшн тоже со своей транзакцией, и не одна транзакция не откатывается. Быть может не решена проблема неработающих вложенных транзакций в MySQL?

На случай если у кого-то будет аналогичная проблема, то проблема действительно была в том, что транзакция стартовала в одном конекшене, а запись в базу в ходе теста происходила уже в другом.
Проблема была в GitHub - yiisoft/yii2-codeception: Yii 2 Codeception extension (DEPRECATED), на данный момент в девелоп версии проблема решена. По крайней мере на PostgresQL теперь откат в транзакции работает корректно.