我正在尝试实现Jest网站上显示的示例:Jest 入门。
在运行时npm test,出现以下错误:
npm test
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:
sum.js
function sum(a, b){ return a+b; } module.exports = sum;
sum.test.js:
sum.test.js
const sum = require('./sum'); test('adding sum function', () => { expect(sum(234,4)).toBe(238); })
sum.js并且sum.test.js是Jest入门中显示的示例的完整副本。
package.json:
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" } }
那么,如何摆脱TypeError: environment.setup is not a function错误呢?
TypeError: environment.setup is not a function
Jest包含在react-scripts中。该错误是由于在以react-scripts开头的项目中安装Jest时发生了冲突。“ Jest入门”指南要求一个“干净”的项目。
只需从您的(dev)依赖关系中删除Jest,它就可以工作。
如果你想用玩笑来测试反应的组分(你可能做的),你需要修改你的测试脚本中package.json来react-scripts test --env=jsdom,因为它是。
react-scripts test --env=jsdom