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.

Disparo de pruebas de React dentro de contenedores Docker

Tengo un contenedor con una aplicación de React que se ejecuta desde docker-compose. Cuando imprimo registros para este contenedor usando

docker-compose logs -f

Hay un mensaje:

PASS  src/App.test.js
  ✓ renders learn react link (28 ms)
tests_1  |
Test Suites: 1 passed, 1 total
tests_1  | Tests:       1 passed, 1 total
tests_1  | Snapshots:   0 total
tests_1  | Time:        1.258 s
tests_1  | Ran all test suites related to changed files.
tests_1  |
tests_1  | Watch Usage
tests_1  |  › Press a to run all tests.
tests_1  |  › Press f to run only failed tests.
tests_1  |  › Press q to quit watch mode.
tests_1  |  › Press p to filter by a filename regex pattern.
tests_1  |  › Press t to filter by a test name regex pattern.
tests_1  |  › Press Enter to trigger a test run.

El contenedor funciona con montajes vinculados. Los cambios en el directorio de mi proyecto se cargan en el contenedor. Cuando agrego algunas pruebas nuevas, ¿cómo puedo “Presionar Enter para iniciar una ejecución de prueba” dentro del contenedor en ejecución? Si no puedo presionar Enter en el contenedor, ¿cómo puedo actualizar el contenedor para ejecutar nuevas pruebas? Utilizo React 17, WSL, Windows y las variables de entorno como FASTREFRESH o CHOKIDARUSEPOLLING no funcionan.

Saludos cordiales

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para iniciar una ejecución de prueba dentro del contenedor en ejecución, puede usar el comando docker exec. Primero, encuentre el ID del contenedor ejecutando el siguiente comando:

    docker ps
    

    Esto mostrará una lista de todos los contenedores en ejecución junto con sus IDs. Una vez que tenga el ID del contenedor, ejecute el siguiente comando:

    docker exec -it <container_id> yarn test
    

    Esto ejecutará el comando de prueba dentro del contenedor y comenzará a ejecutar las pruebas. También puede usar el mismo comando y presionar Enter para iniciar una ejecución de prueba si las pruebas se están ejecutando en modo de observación.

    Si ha agregado nuevas pruebas a su proyecto, puede usar el mismo comando para ejecutarlas. Los cambios en el directorio de su proyecto se cargarán automáticamente en el contenedor a través de bind mounts.

    Si está teniendo problemas con variables de entorno como FAST_REFRESH o CHOKIDAR_USEPOLLING que no funcionan, puede intentar ejecutar el contenedor con la bandera -e para establecer explícitamente estas variables de entorno dentro del contenedor. Por ejemplo:

    docker run -e FAST_REFRESH=true -e CHOKIDAR_USEPOLLING=true <image_name>
    

    Esto iniciará un nuevo contenedor con las variables de entorno especificadas.

    ¡Espero que esto sea útil! Avíseme si tiene alguna pregunta adicional.

Comments are closed.