estoy usando
si firebase emulators:start
entonces esperaré que process.env tenga propiedades como
"FUNCTIONS_EMULATOR": "true", "FIRESTORE_EMULATOR_HOST": "localhost:8080" ahora necesito crear pruebas para mi función en la nube usando mocha, lo probaré usando Firestore y el emulador de funciones, doy mi nombre de archivo events_cron_job.test.ts
después de ejecutar el simulador, trato de registrar en la consola esos valores y obtuve indefinidos así
Espero
console.log(process.env.FUNCTIONS_EMULATOR) // will be "true" console.log(process.env.FIRESTORE_EMULATOR_HOST) // will be "localhost:8080"Creo que esto solo sucede en un entorno de prueba (estoy usando mocha), tengo disparadores http regulares y funciona como se esperaba
antes de ejecutar el emulador, trato de ejecutar esto en la terminal
export FIRESTORE_EMULATOR_HOST="localhost:8080" export FUNCTIONS_EMULATOR="true" y luego ejecute firebase emulators:start , pero el resultado será el mismo, todavía no estoy definido para esos valores
porque esos valores no están definidos, entonces si mi computadora portátil está desconectada de Internet, esta prueba no se ejecutará (es decir, solo accederá a los datos en el servidor de producción, ¡no al emulador!), Espero que la prueba aún se ejecute incluso si hay No hay conexión a Internet ya que uso el emulador.
Ejecuto la prueba de mocha usando
mocha -r ts-node/register src/tests/cloud_function_tests --recursive --extension .test.ts --timeout 60000 --exitComo puede ver en este comentario de problema de Github , para ejecutar pruebas con el emulador de Firebase, debe usar el siguiente comando para activarlo:
firebase emulators:exec "npm test"Como así es como las pruebas estaban destinadas a ser ejecutadas por el equipo de Firebase usando el emulador.