Jest测试'意外令牌导出'

时间:2018-03-01 23:18:24

标签: javascript reactjs webpack babeljs jest

我试图让我的开玩笑测试运行。我在第import socket import os s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(("", 54321)) while True: client_input = c.recv(1024) command = client_input.split(":")[0] if command == "File": command_parameter = client_input.split(":")[1] f = open(command_parameter, "rb") l = os.path.getsize(command_parameter) m = f.read(l) c.sendall(m) f.close() 行收到错误SyntaxError: Unexpected token export,特别是关于“导出”这个词。对我来说,这表明Babel并没有对export default configureStore进行描述,所以我怎样才能用Jest强迫它?我使用jest-webpack

ContractsActions.test.js

redux-mock-store

的package.json

import * as contractsActions from './contractsActions';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';

const middlewares = [thunk]
const mockStore = configureMockStore(middlewares);

describe('async actions', () => {
    const store = mockStore({})
    return store.dispatch(contractsActions.fetchAllContracts()).then(() => {
        //Do something
    })
});

webpack.config.js

...
  "scripts": {
    "test": "jest-webpack",
...
  "jest": {
    "transformIgnorePatterns": [
      "!node_modules/"
    ]
  }
...

2 个答案:

答案 0 :(得分:1)

我最终通过创建一个单独的.babelrc文件来修复此问题,而不是尝试在package.json中设置babel配置设置。我确定我尝试过的其他步骤可能有所贡献,但这似乎是修复它的那个。

<强> .babelrc

void showlist(struct node *list) {
    while(list)
    { 
        printf("%d->", list->num); 
        list = list->next; 
    }
}

答案 1 :(得分:0)

查看该软件包中的package.json

  

https://github.com/arnaudbenard/redux-mock-store/blob/master/package.json

您可以看到它提供了不同的切入点:

"main": "dist/index-cjs.js",
"module": "dist/index-es.js",
"js:next": "dist/index-es.js",
"browser": "dist/index.min.js",

检查node_modules/redux-mock-store是否有dist文件夹。如果没有,请启动符合您要求的构建(也在package.json中列出):

"build:cjs": "babel src --out-file dist/index-cjs.js",
"build:umd": "cross-env BABEL_ENV=es NODE_ENV=development rollup -f umd -c -i src/index.js -o dist/index-umd.js",
"build:umd:min": "cross-env BABEL_ENV=es NODE_ENV=production rollup -f umd -c -i src/index.js -o dist/index-umd.min.js",
"build:es": "cross-env BABEL_ENV=es NODE_ENV=development rollup -f es -c -i src/index.js -o dist/index-es.js",
"build": "npm run build:umd && npm run build:umd:min && npm run build:es && npm run build:cjs",

我不知道哪些版本可以构建适合您,但我认为其中一个版本将是。最糟糕的是,在npm i && npm run build:cjs中启动node_modules/redux-mock-store并使用CommonJS require语法:

const configureMockStore = require('redux-mock-store/dist/index-cjs.js'); 

真的希望这能解决你的问题,至少这些是我会尝试的步骤。