ars*_*sho 23 javascript testing packages reactjs
我试图实现Jest网站上显示的示例:Jest 入门.
在运行时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
Run Code Online (Sandbox Code Playgroud)
sum.js
:
function sum(a, b){
return a+b;
}
module.exports = sum;
Run Code Online (Sandbox Code Playgroud)
sum.test.js
:
const sum = require('./sum');
test('adding sum function', () => {
expect(sum(234,4)).toBe(238);
})
Run Code Online (Sandbox Code Playgroud)
sum.js
并且sum.test.js
是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"
}
}
Run Code Online (Sandbox Code Playgroud)
那么,我该如何摆脱TypeError: environment.setup is not a function
错误呢?
xor*_*xor 19
Jest包含在react-scripts中.该错误是由于在使用react-scripts启动的项目中安装Jest时出现的冲突."Jest入门"指南需要一个"干净"的项目.
只需从您的(dev)依赖项中删除Jest即可.
如果你想用玩笑的测试反应的组分(你可能做的),你需要修改你的测试脚本中package.json
来react-scripts test --env=jsdom
,因为它是.
ars*_*sho 12
根据这个github问题:@jest-environment节点在v22中不起作用,
我更新了sum.test.js
:
/**
* @jest-environment node
*/
const sum = require('./sum');
test('adding sum function', () => {
expect(sum(234,4)).toBe(238);
})
Run Code Online (Sandbox Code Playgroud)
现在我摆脱了TypeError: environment.setup is not a function
.
输出:
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.
Run Code Online (Sandbox Code Playgroud)
阅读几个答案,今天我重新创建了场景.
第1步:
我使用创建了一个新项目create-react-app
.
命令: create-react-app demo-app
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"
}
}
Run Code Online (Sandbox Code Playgroud)
此文件显示jest
不包含在依赖项中.
:第2步
我包括sum.js
和sum.test.js
文件src
作为正式所示的文件夹入门指南.
sum.js
:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Run Code Online (Sandbox Code Playgroud)
sum.test.js
:
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
Run Code Online (Sandbox Code Playgroud)
第3步:
我运行yarn test
命令而不包含jest
在package.json
文件中.因此,此测试命令使用react-scripts test --env=jsdom
如下所示package.json
.
测试结果:
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.
Run Code Online (Sandbox Code Playgroud)
第4步:
我更新了package.json
文件以jest
用作测试脚本:
{
"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"
}
}
Run Code Online (Sandbox Code Playgroud)
我再次跑yarn test
,输出是:
$ 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.
Run Code Online (Sandbox Code Playgroud)
jest
使用yarn add --dev jest
或npm install --save-dev jest
使用create-react-app
命令.如果您使用,jest
则包含在node-modules
项目中create-react-app
.从官方Jest文档:
使用Create React App进行设置
如果您刚刚开始使用React,我们建议您使用Create React App.它随时可以使用并随Jest一起发货!您无需执行任何额外的设置步骤,可以直接进入下一部分.
package.json
文件中的测试脚本{ 查看此问题 }.保持默认值"test": "react-scripts test --env=jsdom",
. 小智 7
只需jest
从您的dev依赖项中删除即可.为此,请运行以下命令:
npm remove --save-dev jest
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9715 次 |
最近记录: |