Saltar al contenido

¿Jest admite la importación / exportación de ES6?

Solución:

De mi respuesta a otra pregunta, esto puede ser más simple:


El único requisito es configurar su test entorno a Babel y agregue el complemento de transformación ECMAScript 6:


Paso 1:

Agrega tu test ambiente a .babelrc en la raíz de su proyecto:

{
  "env": {
    "test": {
      "plugins": ["@babel/plugin-transform-modules-commonjs"]
    }
  }
}

Paso 2:

Instale el complemento de transformación ECMAScript 6:

npm install --save-dev @babel/plugin-transform-modules-commonjs

Y eso es. Jest permitirá la compilación de módulos ECMAScript a CommonJS automáticamente, sin tener que informar opciones adicionales a su jest propiedad dentro package.json.

ACTUALIZACIÓN 2020: soporte nativo de módulos ECMAScript (ESM)


De acuerdo con este problema, existe soporte nativo de ESM desde [email protected]. Entonces ya no tendrás que usar babel. Al momento de escribir esta respuesta (05/2020), para activar eso necesitas hacer tres cosas simples:

  • Asegúrate de no transformarte import declaraciones estableciendo transform: {} en el archivo de configuración
  • Correr [email protected]^12.16.0 || >=13.2.0 con --experimental-vm-modules bandera
  • Ejecute su prueba con jest-environment-node o jest-environment-jsdom-sixteen.

Entonces, su archivo de configuración de Jest debe contener al menos esto:

export default {
    testEnvironment: 'jest-environment-node',
    transform: {}
    ...
};

Y poner --experimental-vm-modules flag, tendrá que ejecutar Jest de la siguiente manera:

node --experimental-vm-modules node_modules/jest/bin/jest.js

También tenga en cuenta en el problema de Github que este enfoque aún no es compatible con jest objeto. Por lo tanto, es posible que deba importarlo manualmente:

import {jest} from '@jest/globals'

(Espero que esto cambie en el futuro)

Para una configuración actualizada, estoy usando https://babeljs.io/setup#installation

Seleccione JEST y sea feliz:

Como referencia, la configuración actual:

npm install --save-dev babel-jest

En tus package.json archivo, realice los siguientes cambios:

{
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "transform": {
      "^.+\.jsx?$": "babel-jest"
    }
  }
}

Instale el ajuste preestablecido de babel:

npm install @babel/preset-env --save-dev

Crear un .babelrc expediente:

{
  "presets": ["@babel/preset-env"]
}

Ejecute sus pruebas:

npm run test
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *