我正在使用Jest来测试我的React应用程序.
最近,我将DeckGL添加到了我的应用程序中.我的测试因此错误而失败:
Test suite failed to run
/my_project/node_modules/deck.gl/src/react/index.js:21
export {default as DeckGL} from './deckgl';
^^^^^^
SyntaxError: Unexpected token export
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:318:17)
at Object.<anonymous> (node_modules/deck.gl/dist/react/deckgl.js:9:14)
at Object.<anonymous> (node_modules/deck.gl/dist/react/index.js:7:15)
Run Code Online (Sandbox Code Playgroud)
这似乎是Jest在运行它的测试之前转换节点模块的问题.
这是我的.babelrc:
{
"presets": ["react", "es2015", "stage-1"]
}
Run Code Online (Sandbox Code Playgroud)
这是我的开玩笑设置:
"jest": {
"testURL": "http://localhost",
"setupFiles": [
"./test/jestsetup.js"
],
"snapshotSerializers": [
"<rootDir>/node_modules/enzyme-to-json/serializer"
],
"moduleDirectories": [
"node_modules",
"/src"
],
"moduleNameMapper": {
"\\.(css|scss)$": "<rootDir>/test/EmptyModule.js"
}
},
Run Code Online (Sandbox Code Playgroud)
我似乎有正确的事情需要改造export {default as DeckGL }.所以任何想法都会出错?
我是测试 React/Typescript 应用程序的新手。
命令(别名react-scripts test):
yarn test
Run Code Online (Sandbox Code Playgroud)
输出:
FAIL src/containers/pages/Feature/Feature.test.tsx
? Test suite failed to run
Target container is not a DOM element.
17 | const { store, persistor } = configureStore(history, initialState);
18 |
> 19 | ReactDOM.render(
| ^
20 | <Provider store={store}>
21 | <PersistGate loading={null} persistor={persistor}>
22 | <ConnectedRouter history={history}>
at Object.render (node_modules/react-dom/cjs/react-dom.development.js:27596:13)
at Object.render (src/index.tsx:19:10)
Run Code Online (Sandbox Code Playgroud)
简单的测试代码:
import * as React from 'react';
import { create } from 'react-test-renderer';
import Feature from "./Feature";
describe('Feature …Run Code Online (Sandbox Code Playgroud)