4

J'utilise JMSSerializer pour créer des réponses JSON pour un projet Symfony2 sur lequel je travaille et essayer de construire des tests unitaires pour chaque réponse, mais je suis en train de modifier les J'utilise YML config pour le sérialiseur et il fonctionne parfaitement lors de la génération de réponses.JMS Serializer ne lit pas la configuration lors de l'exécution de tests PHPUnit dans Symfony2

#src/FooBundle/Resources/config/serializer/Entity.Bar.yml 
FooBundle\Entity\Bar: 
    exclusion_policy: none 
    properties: 
     id: 
      exclude: true 
      type: integer 
     name: 
      type: string 

je me suis demandé si je dois précharger la configuration d'une certaine manière et trouvé ce lien: http://jmsyst.com/libs/serializer/master/configuration qui dit configurer un chemin de métadonnées, mais aussi d'inclure un suffixe de fichier:

$serializer = 
JMS\Serializer\SerializerBuilder::create() 
    ->addMetadataDir($someDir) 
    ->build(); 

J'ai essayé la définition du répertoire de configuration lors de la génération du sérialiseur dans le test unitaire:

$serializer = SerializerBuilder::create()->addMetadataDir('path-to-dir')->build(); 

Mais cela n'a pas résolu le problème, j'ai vérifié le document "Donc, si votre classe s'appelait Vendor \ Package \ Foo, le fichier de métadonnées devrait se trouver dans $ unDir/Vendor.Package. Foo. (Xml | yml). "

mais essayer get génère:

JMS\Serializer\Exception\InvalidArgumentException: The directory "path-to-file" does not exist. 

Est-ce que je manque quelque chose évidente?

Merci

Ben

Répondre

7

JMSSerializer met en cache les fichiers de configuration la première fois qu'il les lit, vous devez effacer le cache de l'environnement de test avec:

php app/console cache:clear -e test 
Questions connexes