javascript reactjs testing packages

javascript - enzyme



TypeError: environment.setup no es una función en React Testing (6)

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.

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 ?



La broma se incluye con los scripts de reacción. El error se debe a un conflicto que surgió cuando instaló Jest en un proyecto iniciado con react-scripts. La guía "Comenzando con Jest" espera un proyecto ''limpio''.

Simplemente quite Jest de sus dependencias (dev) y debería funcionar.

Si desea usar Jest para probar los componentes React (lo que probablemente haga), necesita modificar su script de prueba en package.json para react-scripts test --env=jsdom , tal como estaba.


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


Basado en este problema de github: @ jest-environment node no funciona en v22 ,

sum.test.js el sum.test.js como:

/** * @jest-environment node */ const sum = require(''./sum''); test(''adding sum function'', () => { expect(sum(234,4)).toBe(238); })

Ahora me deshice de TypeError: environment.setup is not a function .

Salida:

PASS src/sum.test.js ✓ adding sum function (2ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 0.438s Ran all test suites.

Actualizado

Leyendo varias respuestas, hoy recreé el escenario.

Paso 1: creé un nuevo proyecto usando create-react-app .

El comando: create-react-app demo-app

archivo package.json :

{ "name": "demo-app", "version": "0.1.0", "private": true, "dependencies": { "react": "^16.3.2", "react-dom": "^16.3.2", "react-scripts": "1.1.4" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", "eject": "react-scripts eject" } }

Este archivo muestra que jest no está incluido en las dependencias.

Paso 2: sum.test.js archivos sum.js y sum.test.js en la carpeta src como se muestra en la guía oficial de inicio .

sum.js :

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

sum.test.js :

const sum = require(''./sum''); test(''adds 1 + 2 to equal 3'', () => { expect(sum(1, 2)).toBe(3); });

Paso 3: yarn test comando yarn test sin incluir jest en el archivo package.json . Entonces, este comando de prueba utiliza react-scripts test --env=jsdom como se muestra en package.json .

Salida de la prueba:

PASS src/sum.test.js PASS src/App.test.js Test Suites: 2 passed, 2 total Tests: 2 passed, 2 total Snapshots: 0 total Time: 0.594s, estimated 1s Ran all test suites related to changed files.

Paso 4: package.json archivo package.json para usar jest como script de prueba:

{ "name": "demo-app", "version": "0.1.0", "private": true, "dependencies": { "react": "^16.3.2", "react-dom": "^16.3.2", "react-scripts": "1.1.4" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "jest", "eject": "react-scripts eject" } }

Una vez más corrí la yarn test y la salida es:

$ jest PASS src/sum.test.js FAIL src/App.test.js ● Test suite failed to run /<PATH>/demo-app/src/App.test.js: Unexpected token (7:18) 5 | it(''renders without crashing'', () => { 6 | const div = document.createElement(''div''); > 7 | ReactDOM.render(<App />, div); | ^ 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | Test Suites: 1 failed, 1 passed, 2 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 0.645s, estimated 1s Ran all test suites.

Demasiado largo; No leído (TL; DR)

  1. No agregue jest usando el yarn add --dev jest o npm install --save-dev jest si usa el comando create-react-app . jest se incluye en node-modules de node-modules del proyecto si utiliza create-react-app .

De la documentación oficial de Jest :

Configuración con la aplicación Crear React

Si está empezando a utilizar React, le recomendamos que utilice la aplicación Crear React. Está listo para usar y se envía con broma! No necesita realizar ningún paso adicional para la configuración, y puede dirigirse directamente a la siguiente sección.

  1. No cambie la secuencia de comandos de prueba en el archivo package.json { vea este problema }. Mantenga la "test": "react-scripts test --env=jsdom", predeterminada "test": "react-scripts test --env=jsdom", en eso.