es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Servicio personalizado no encontrado por la prueba unitaria del plugin de Shopware 6.

Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código y la salida en markdown.

Escribí un plugin en el que quiero crear pruebas ahora. Seguí la documentación oficial y cambié mi archivo phpunit.xml.dist de acuerdo con mi entorno de desarrollo.

Las pruebas están funcionando, pero el contenedor no conoce mis definiciones/repositorios personalizados. ¿Hice algo mal?

Intenté ejecutarlo en un contenedor Dockware estándar.

phpunit.xml.dist
“ `

 <php>
    <ini name = "error_reporting" value = "-1" />
    <server name="KERNEL_CLASS" value="Shopware\Production\Kernel"/>
    <env name = "APP_ENV" value = "test" />
    <env name = "APP_DEBUG" value = "1" />
    <env name = "APP_SECRET" value = "*" />
    <env name = "SHELL_VERBOSITY" value = "-1" />
</php>

<testsuites>
    <testsuite name = "base">
        <directory> src / Test < /directory>
    </testsuite>
    <testsuite name = "employee">
        <directory> src / Components / Employee / Test < /directory>
    </testsuite>
</testsuites>

<filter>
    <whitelist>
        <directory suffix = ".php">./</directory>
    </whitelist>
</filter>

El error:

$ bash ./bin/phpunit.sh 
PHPUnit 9.5.9 de Sebastian Bergmann y colaboradores.

Advertencia: Su configuración XML valida mediante el esquema obsoleto.
Sugerencia: ¡Migre su configuración XML utilizando "--migrate-configuration"!
E.                                                                  2 / 2 (100%)

Tiempo: 00:00.029, Memoria: 40.50 MB

Hubo 1 error:

1) \EmployeeRouteTest::testEmployeeIsCreatedCorrectly
Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: Ha solicitado un servicio inexistente "employee.repository". ¿Quiso decir alguno de estos: "apptemplate.repository", "mail<em>template.repository", "media</em>folder.repository"?

/var/www/html/vendor/symfony/dependency-injection/Container.php:271
/var/www/html/vendor/symfony/dependency-injection/Container.php:219
/var/www/html/vendor/symfony/framework-bundle/Test/TestContainer.php:111
/var/www/html/custom/plugins/<em>*</em>/src/Components/Employee/Test/EmployeeRouteTest.php:30

¡ERRORES!
Pruebas: 2, Afirmaciones: 5, Errores: 1.
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el contenedor no está al tanto de tus definiciones/repositorios personalizados.

    Verifica que tus definiciones y repositorios estén configurados correctamente y registrados en el contenedor. También asegúrate de que tus definiciones personalizadas sean añadidas al archivo services.xml.

    Si todo parece estar correcto, intenta limpiar la caché con bin/console cache:clear o bin/build-administration.sh si estás utilizando Shopware 6.

    Si el problema persiste, podrías intentar cargar manualmente el plugin en el archivo phpunit.xml.dist. Por ejemplo, agrega la siguiente línea al final del elemento php:

    <env name="BOOTSTRAP_FILE" value="./custom/plugins/MyPlugin/src/TestBootstrap.php"></env>
    

    Esto asegurará que el archivo de inicio de tu plugin sea cargado, y tus definiciones/repositorios personalizados estén registrados en el contenedor durante las pruebas.

Comments are closed.