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.
Debería bajar la v20.0.4
instalada a v20.0.4
npm install -D [email protected]
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