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.

Jest: ReferenceError: Estás intentando `importar` un archivo después de que se haya destruido el entorno de Jest.

Estoy utilizando Jest para realizar pruebas unitarias en mi aplicación Sails JS.

Cuando las pruebas pasan y finalizan, obtengo este error:

Ejecutadas todas las suites de pruebas.

ReferenceError: Está intentando importar un archivo después de que el entorno Jest haya sido deshabilitado. Desde test/controllers/foo/bar.test.js.

  en readdir (node_modules/readdirp/readdirp.js:49:25)
  en FSWatcher.<anónimo> (node_modules/chokidar/lib/nodefs-handler.js:355:5)
  en FSWatcher.Object.<anónimo>.NodeFsHandler._handleDir (node_modules/chokidar/lib/nodefs-handler.js:406:18)
  en FSWatcher.<anónimo> (node_modules/chokidar/lib/nodefs-handler.js:455:19)
  en FSWatcher.<anónimo> (node_modules/chokidar/lib/nodefs-handler.js:460:16)
TypeError: require(...) no es una función
 en readdir (/.../node_modules/readdirp/readdirp.js:49:48)
 en FSWatcher.<anónimo> (/.../node_modules/chokidar/lib/nodefs-handler.js:355:5)
 en FSWatcher.Object.<anónimo>.NodeFsHandler.<em>handleDir (/.../node_modules/chokidar/lib/nodefs-handler.js:406:18)
 en FSWatcher.<anónimo> (/.../node_modules/chokidar/lib/nodefs-handler.js:455:19)
 en FSWatcher.<anónimo> (/.../node_modules/chokidar/lib/nodefs-handler.js:460:16)

He establecido el tiempo de espera en Jest en 10000.

También he probado usando temporizadores falsos de Jest.

He investigado antes de publicar esta pregunta, pero no he encontrado una buena solución.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Este error ocurre cuando el entorno de Jest se desmonta, pero un archivo se está importando. Una solución posible es revisar el archivo importado para buscar objetos o estados globales y asegurarse de que sean restablecidos al final de la prueba utilizando un gancho afterEach.

    Otra solución posible es deshabilitar la función de ejecución de pruebas en paralelo de Jest estableciendo maxWorkers en 1 en la configuración de Jest. Esto se puede hacer agregando lo siguiente al archivo de configuración de Jest (generalmente jest.config.js):

    module.exports = {
      // ... otras opciones de configuración
      maxWorkers: 1,
    };
    

    Esto debería prevenir que ocurra el error.

    Además, puede ser útil actualizar el paquete readdirp a la última versión ya que este parece ser la fuente del error TypeError: require (...) no es una función.

Comments are closed.