Тип данных Doctrine UUID: отлично работает вручную, но не работает в Codeception - PullRequest
1 голос
/ 18 сентября 2019

Я создаю приложение Api Platform, в котором пользовательский объект, скорее всего, не имеет адреса электронной почты, имени пользователя или какой-либо другой читабельной личности.Вот почему я решил использовать UUID-типизированное поле в качестве имени пользователя (User::getUsername()).Я установил пакет ramsey/uuid-doctrine и применил тип данных UUID Doctrine как для свойства id, так и для uuid.Удален метод User::setUsername(), поскольку мы должны назначать его только один раз при создании нового экземпляра пользователя.Теперь создание нового пользователя через API прекрасно работает как в Swagger UI, так и вручную с REST-клиентом.Но когда я пытаюсь запустить простейший Codeception cest, выполняя $ I-> haveInRepository, он выдает

1) UserCest: Test creating user
 Test  tests/functional/UserCest.php:createUser

  [Doctrine\Common\Persistence\Mapping\MappingException] The class 'Ramsey\Uuid\Uuid' was not found in the chain configured namespaces App\Entity


Scenario Steps:

 1. $I->haveInRepository("App\\Entity\\User") at tests/functional/UserCest.php:17

#1  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/MappingException.php:22
#2  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/Driver/MappingDriverChain.php:87
#3  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:151
#4  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:304
#5  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php:78
#6  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/persistence/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php:183
#7  /Users/erop/Developer/temp/uuid-test/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:283
#8  Codeception\Module\Doctrine2->haveInRepository
#9  /Users/erop/Developer/temp/uuid-test/tests/_support/_generated/FunctionalTesterActions.php:2792
#10 /Users/erop/Developer/temp/uuid-test/tests/functional/UserCest.php:17

Не знаю, что и где я должен настроить, чтобы тест работал.То, что я нашел в интернете, в основном относится к взаимосвязям сущностей в разных связках.Но, как вы можете видеть, это не так.Есть идеи, как решить проблему?

...