gpt4 book ai didi

reactjs - 来自 create-react-app 的 Jest 未在 Windows 上运行

转载 作者:行者123 更新时间:2023-12-03 13:41:34 25 4
gpt4 key购买 nike

我在 Windows 8.1 上使用 create-react-app 创建的干净安装的应用中运行 Jest 时遇到问题。安装后,运行命令npm run test,出现错误:

未发现与上次提交后更改的文件相关的测试。

运行jest --watchAll,因此绕过同一目录中的react-scripts,但显示:

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: E:\demo\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 | });

在谷歌上搜索了很长一段时间,并遵循人们对类似问题的建议,我开始在我的 package.json 上添加 Babel devDependency。然后就变成了这样:

"devDependencies": {
"@babel/core": "^7.2.2",
"@babel/plugin-proposal-class-properties": "^7.2.3",
"@babel/plugin-transform-runtime": "^7.2.0",
"@babel/preset-env": "^7.2.3",
"@babel/preset-react": "^7.0.0",
"@babel/register": "^7.0.0",
"@babel/runtime": "^7.2.0",
"babel-eslint": "^10.0.1",
"babel-jest": "^23.6.0",
"babel-loader": "^8.0.5",
"babel-plugin-root-import": "^6.1.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react-optimize": "^1.0.1",
"jest-transform-stub": "^1.0.0"
}

我还添加了 .babelrc 文件:

{
"presets": [
"@babel/react" ,
"@babel/env"
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}

无论我尝试什么组合,我总是会遇到不同的错误,这不可能是正确的。看看互联网上的人们,所有人都可以通过 create-react-app 使用开箱即用的 Jest 命令。

最后一次尝试所有这些依赖项会导致以下错误:

Test suite failed to run

E:\dev\demo\src\App.test.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import React from 'react';
^^^^^

SyntaxError: Unexpected identifier

at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)

有什么想法吗?我很困惑。

最佳答案

create-react-app 是生成 react-scripts 预配置设置的 CLI,其中包括 Webpack 和 Jest 配置等。

当 Jest 直接用作 jest 时,它会忽略生成的配置,需要从头开始配置。

应使用

npm test (在 CRA 设置中默认为 react-scripts test)而不是 jest 来使用生成的 Jest 配置.

如果 npm test 的问题是交互模式:

No tests found related to files changed since last commit. Press a to run all tests, or run Jest with --watchAll

可以使用npm test a来解决。

关于reactjs - 来自 create-react-app 的 Jest 未在 Windows 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54052509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com