javascript - TypeError: environment.setup no es una función en React Testing




jest (4)

Estaba tratando de implementar el ejemplo que se muestra en el sitio web de Jest: Empezar con Jest .

Mientras ejecutaba la npm test recibía el siguiente error:

FAIL  src/sum.test.js
   Test suite failed to run

    TypeError: environment.setup is not a function

      at node_modules/jest-runner/build/run_test.js:112:23

sum.js :

function sum(a, b){
  return a+b;
}
module.exports = sum;

sum.test.js :

const sum = require('./sum');

test('adding sum function', () => {
  expect(sum(234,4)).toBe(238);
})

sum.js y sum.test.js son una copia exacta del ejemplo que se muestra en Primeros pasos con Jest .

package.json :

{
  "name": "jest-demo-test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-scripts": "1.0.17"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "jest",
    "eject": "react-scripts eject"
  },
  "devDependencies": {
    "jest": "^22.0.4"
  }
}

Entonces, ¿cómo puedo deshacerme de TypeError: environment.setup is not a function error de TypeError: environment.setup is not a function ?


Añadir

"jest": {
    "testEnvironment": "node"
  }

a su archivo package.json, su package.json se vería así:

{
  "name": "jest-demo-test",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-scripts": "1.0.17"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "jest",
    "eject": "react-scripts eject"
  },
  "devDependencies": {
    "jest": "^22.0.4"
  },
   "jest": {
    "testEnvironment": "node"
  }
}

ACTUALIZAR

Para las personas que usan la aplicación create y tienen este problema, hay dos soluciones.

1- actualizar el comando de test (o agregar uno nuevo) en package.json para jest lugar de react-scripts test , porque react-scripts test no permitirá las opciones de jest en package.json como @Xinyang_Li declaró en los comentarios.

2-si no desea cambiar el comando de prueba en package.json, y use la prueba de creación-reacción-aplicación predeterminada; elimina las opciones de jest de packge.json (si existe)

 "jest": {
    "testEnvironment": "node"
  }

luego elimine los node_modules y luego ejecute npm install para instalarlos todos de nuevo, y después de eso, sus pruebas deberían ejecutarse normalmente.



Mi problema se resuelve con esto:
.
Si tiene react-scripts y jest en su package.json, elimine jest de él.
Luego elimine package-lock.json, yarn.lock y node_modules.
Luego ejecuta npm install (o hilo si lo usas). ~ Dan Abramov ~. Problemas # 5119 .


Solo quita la jest de tus dependencias de desarrollo. Para ello, ejecute el siguiente comando:

npm remove --save-dev jest




packages