- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 React 运行 Jest,我使用 --create-react-app 启动项目,然后添加 --babel 和 --jest 之后,但是当我运行 [yarn jest] 时,屏幕上会显示此错误,谁能帮我?
这是错误:
FAIL src/pages/users/__tests__/add.test.js
Test suite failed to run
Jest encountered an unexpected token
This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.
By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".
Here's what you can do:
• To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html
Details:
SyntaxError: /usr/lib/myProjects/tryning/src/pages/users/add/index.js: Unexpected token (124:8)
122 |
123 | return (
> 124 | <>
| ^
125 | <Top />
126 | <Menu />
127 | <div className="user-add-form">
at Parser.raise (node_modules/@babel/parser/src/parser/location.js:41:63)
at Parser.unexpected (node_modules/@babel/parser/src/parser/util.js:160:16)
at Parser.parseExprAtom (node_modules/@babel/parser/src/parser/expression.js:1143:20)
at Parser.parseExprSubscripts (node_modules/@babel/parser/src/parser/expression.js:553:23)
at Parser.parseMaybeUnary (node_modules/@babel/parser/src/parser/expression.js:533:21)
at Parser.parseExprOps (node_modules/@babel/parser/src/parser/expression.js:301:23)
at Parser.parseMaybeConditional (node_modules/@babel/parser/src/parser/expression.js:256:23)
at Parser.parseMaybeAssign (node_modules/@babel/parser/src/parser/expression.js:186:21)
at Parser.parseParenAndDistinguishExpression (node_modules/@babel/parser/src/parser/expression.js:1312:16)
at Parser.parseExprAtom (node_modules/@babel/parser/src/parser/expression.js:1050:21)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 4.267s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
import React from 'react';
import Enzyme, { mount } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Enzyme.configure({ adapter: new Adapter() });
const addUser = require('../add/index');
describe('MyComponent', () => {
it('works', () => {
expect(addUser.fieldCheck('Nelson')).to(true);
});
});
import React, { useState } from 'react';
import './style.css';
import Menu from '../../../components/menu';
import Top from '../../../components/top';
import { Link } from 'react-router-dom';
const AddUser = () => {
const [nameInput, setName] = useState('');
const [cpfInput, setCpf] = useState('');
const [userInput, setUser] = useState('');
const [passInput, setPass] = useState('');
let accounts = [];
var accountsJson = JSON.parse(localStorage.getItem('tableUser'));
const fieldCheck = field => {
if (field.value === null || field.value.trim() === ""){
field.style = "border: 1px solid #ff0000";
return false;
}
else{
field.style = "border: 1px solid #339680";
return true;
}
}
const account = {
name: '',
cpf: '',
user: '',
pass: '',
};
const finalWarning = (operation, error) => {
switch (operation) {
case 'save':
return 'Save with sucess!';
case 'error':
return 'An error has occurred: '
.concat(error)
.concat("!");
case 'cancel':
return 'The action has been undone!';
case 'empty':
return 'Fields on red not can are empty!'
default:
return 'Do not possible return in [finalWarning] >52';
}
}
const confirmSave = () => {
var op = window.confirm("Are you sure you want to save?");
return op;
}
const cleanFields = () => {
setName('');
setCpf('');
setUser('');
setPass('');
}
const emptyFields = inputsElements => {
var haveEmpty = false;
inputsElements.map(input => {
if (document.getElementsByName(input)[0].value === "") {
document.getElementsByName(input)[0].style = "border: 1px solid #ff0000";
haveEmpty = true;
}
else {
haveEmpty = false;
}
});
if (haveEmpty) {
alert(finalWarning('empty'));
return true;
}
else {
return false;
}
}
const addAccount = account => {
accounts.push(account);
localStorage.setItem('tableUser', JSON.stringify(accounts));
}
const handleFormSubmit = event => {
event.preventDefault();
account.name = nameInput;
account.cpf = cpfInput;
account.user = userInput;
account.pass = passInput;
if (!emptyFields(['nameInput', 'cpfInput', 'userInput', 'passInput'])) {
if (confirmSave())
try {
accounts = [];
for (var i in accountsJson)
accounts.push(accountsJson[i]);
addAccount(account);
cleanFields();
alert(finalWarning('save'));
window.location.href = "/users";
}
catch (e) {
alert(finalWarning('error', e));
alert(e);
window.location.href = "/users";
}
else
alert(finalWarning('cancel'));
}
}
return (
<>
<Top />
<Menu />
<div className="user-add-form">
<div className="line-top"></div>
<form method="post" id="user-add-form" onSubmit={handleFormSubmit}>
<div className="user-add-fields">
Name
<input
onChange={e => setName(e.target.value)}
name="nameInput"
value={nameInput}
type="text"
placeholder="Insert name."
onBlur={e => fieldCheck(e.target)}
/>
CPF
<input
onChange={e => setCpf(e.target.value)}
name="cpfInput"
value={cpfInput}
type="text"
placeholder="Insert cpf."
onBlur={e => fieldCheck(e.target)}
/>
User
<input
onChange={e => setUser(e.target.value)}
name="userInput"
value={userInput}
type="text"
placeholder="Insert user."
onBlur={e => fieldCheck(e.target)}
/>
Password
<input
onChange={e => setPass(e.target.value)}
name="passInput"
value={passInput}
type="password"
placeholder="Insert password."
onBlur={e => fieldCheck(e.target)}
/>
</div>
<button
type="submit"
className=" button user-add-save-button"
>
Save
</button>
</form>
<Link to="/Users" className="button user-add-cancel-button" >
Cancel
</Link>
</div >
</>
);
}
export default AddUser;
{
"name": "trying",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/react": "^9.3.3",
"babel": "^6.23.0",
"enzyme": "^3.10.0",
"enzyme-adapter-react-16": "^1.15.1",
"jest": "^24.9.0",
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.2.0",
"tab": "^1.0.0",
"tabs": "^0.2.0",
"webfontloader": "^1.6.28"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "jest",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
{
"presets": ["@babel/preset-env"],
"plugins": [
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-transform-async-to-generator"
]
}
最佳答案
谢谢大家,除了必须安装 babel-jest ,之前还得做一些配置。
第一。我执行了命令
npm run eject
//<rootDir>/__tests__/setup.js
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Enzyme.configure ({adapter: new Adapter ()});
enzyme enzyme-adapter-react-16 react-test-render
关于javascript - 错误没有 Jest : This usually means that you are trying to import a file which Jest cannot parse, 例如它不是普通的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59414982/
入门教程使用内置的梯度下降优化器非常有意义。但是,k均值不仅可以插入梯度下降中。似乎我不得不编写自己的优化程序,但是鉴于TensorFlow原语,我不确定如何执行此操作。 我应该采取什么方法? 最佳答
我想知道 K-Mean 和 K-Means++ 算法之间的区别。如果有人了解 K-Means++ 算法的流程,您能举例说明一下吗?虽然,我了解 K-Mean 算法,但发现如何实现 K-Means++
我有不同的数据帧均值计算值。通常,我想它们应该是一样的。或者有什么区别: daily1 = daily_above_zero['2011-2'].mean() daily1 Out[181]: P_S
我有关于人们每周上类旅行次数的数据。随着行程的距离,我对两个变量之间的关系感兴趣。 (预计频率会随着距离的增加而下降,本质上是一种负相关。)Cor.test 支持这个假设:-0.08993444,p
我了解 k-means 算法步骤。 但是我不确定该算法是否会始终收敛?或者观察总是可以从一个质心切换到另一个质心? 最佳答案 该算法总是收敛(按定义)但 不一定是全局最优 . 算法可能会从质心切换到质
(添加了可重现的示例。) 我对 rnorm 函数有点困惑。 我期待 mean(rnorm(100,mean=0,sd=1))为0;和 sd(rnorm(100,mean=0,sd=1))为 1。但给出
我想计算一个平均值。这是带有示例数据的代码: # sample data Nr <- c(1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
我有一个像这样的数据框: Id F M R 7 1 286 907 12 1 286 907 17 1 186 1271 21 1 296 905 30 1
如果我们将 K-means 和顺序 K-means 方法应用于具有相同初始设置的相同数据集,我们会得到相同的结果吗?解释你的理由。 个人认为答案是否定的,顺序K-means得到的结果取决于数据点的呈现
我想使用 MEAN JavaScript 堆栈,但我注意到有两个不同的堆栈,它们有自己的网站和安装方法:mean.js 和 mean.io。所以我开始问自己这个问题:“我用哪一个?”。 所以为了回答这
似乎有多种方法可以安装 Mean Stack (mean.io) 的所有模块。但是,在 c9.io 中执行此操作的最佳方法是什么?我一直在尝试很多事情,但我似乎并没有全部掌握。 c9.io 有专门的
在开发过程中,我希望加载原始(未聚合).js 文件。 Mean.io 文档说: All javascript within public is automatically aggregated wit
我正在尝试添加 angular-material到 mean.io应用。 在我的自定义包中,我使用 bower 来安装 angular-material,现在我有一个 .../public/asset
我只运行以下三行: df = pd.read_hdf('data.h5') print(df.mean()) print(df['derived_3'].mean()) 第一个 print 列出了每一
k-means++算法有助于原始k-means算法的以下两点: 原始的 k-means 算法在输入大小的 super 多项式的最坏情况下运行时间,而 k-means++ 声称是 O(log k)。 与
这两个字段有什么区别? : 每个请求的时间(平均) 每个请求的时间(平均,跨所有并发请求) 它们每个是如何计算的? 示例输出: Time per request: 3953.446 [ms
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 7年前关闭。 Improve this qu
我想看看是否可以根据它们所处理的目标函数来比较两者的性能? 最佳答案 顺便说一句,Fuzzy-C-Means (FCM) 聚类算法也称为Soft K-Means。 目标函数实际上是相同的,唯一的区别是
虽然我看到了很多与此相关的问题,但我并没有真正得到答案,可能是因为我是使用 nltk 集群的新手。我确实需要对聚类新手进行基本解释,特别是关于 NLTK K 均值聚类的向量表示以及如何使用它。我有一个
我在学习mean.io来自 this tutorial video ,它显示了示例包(由 mean package mymodule 创建。它也在 docs 的“包”下进行了描述)。我想帮助了解给定的
我是一名优秀的程序员,十分优秀!