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
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:
Esta modificación incluye la ejecución del servidor en segundo plano usando
&
, un comandosleep 5s
para asegurarse de que el servidor tenga suficiente tiempo para iniciar y utiliza el scriptwait-for-it.sh
(que se puede descargar desde GitHub) para esperar a que el servidor se inicie antes de ejecutar las pruebas unitarias connpm run test
.¡Espero que esto ayude! Hazme saber si tienes alguna otra pregunta.