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.

Cómo ejecutar una unidad con Circle CI en Node.js

Estoy teniendo dificultades para integrar la prueba unitaria en mi proyecto nodejs. Todo funciona bien localmente cuando abro una terminal con npm start y otra terminal con el comando npm run test. Pero al implementarlo en circle ci, me quedo atascado con la línea de comando de inicio del servidor de nodos. La declaración de prueba no se ejecutó. ¿Alguien puede indicarme una dirección equivocada? Gracias!

Este es mi config.yml

version: 2.1
jobs:
  run_tests:
    docker:
      - image: circleci/node:12
    steps:
    - checkout
    - run:
        name: Install npm dependencies
        command: |
          npm install --save
    - run:
        name: Start node server
        command: |
          npm start
    - run:
        name: Run Unit Tests
        command: |
          npm run test
workflows:
  build_test:
    jobs:
      - run_tests

Y mi repositorio: https://github.com/ThanhDeveloper/MernStackApp

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con el archivo de configuración es que inicia el servidor de nodo, pero no espera a que se ejecute antes de ejecutar las pruebas unitarias. Una solución podría ser modificar el paso “Iniciar servidor de nodo” para incluir un comando “esperar-por-eso” que espere a que el servidor se ejecute antes de pasar al siguiente paso.

    Aquí hay un ejemplo de cómo se podría modificar:

    - run:
        name: Iniciar servidor de nodo
        command: |
          npm start &
          sleep 5s
          ./wait-for-it.sh localhost:3000 --timeout=60 --strict -- npm run test
    

    Esta modificación incluye la ejecución del servidor en segundo plano usando &, un comando sleep 5s para asegurarse de que el servidor tenga suficiente tiempo para iniciar y utiliza el script wait-for-it.sh (que se puede descargar desde GitHub) para esperar a que el servidor se inicie antes de ejecutar las pruebas unitarias con npm run test.

    ¡Espero que esto ayude! Hazme saber si tienes alguna otra pregunta.

Comments are closed.