开玩笑setupTestFrameworkScriptFile或setupFiles ES6语法

und*_*ned 5 ecmascript-6 reactjs jestjs

我是新手。我在圆CI上遇到错误。我的setup.js文件具有ES6语法。由于setupTestFrameworkScriptFile每次运行测试时都会执行该文件,因此我认为我可以使用ES6语法,但babel-jest不会转译该文件。定期进行反应测试,例如对反应成分进行单元测试。在本地环境中,安装文件会被转录。

 SyntaxError: Unexpected token {

      at ScriptTransformer._transformAndBuildScript (node_modules/jest/node_modules/jest-cli/node_modules/jest-runtime/build/script_transformer.js:305:17)
      at Object.<anonymous> (test/setup.js:1:869)
      at next (native)
Run Code Online (Sandbox Code Playgroud)

我开玩笑的配置文件看起来像这样。

{
  "verbose": true,
  "transform": {
    "^.+\\.(js|jsx)$": "babel-jest"
  },
  "transformIgnorePatterns": [
     "node_modules/(?!my-module)"
  ],
  "snapshotSerializers": [
    "jest-serializer-enzyme"
  ],
  "setupTestFrameworkScriptFile": "<rootDir>/test/setup.js",
  "globals": {
    "__PROD__": false,
    "__STG__": false
  },
  "moduleDirectories": [
    "node_modules"
  ],
  "testRegex": "(/__tests__/.*|__test__.js)$",
  "moduleFileExtensions": [
    "css",
    "jsx",
    "js",
    "scss",
    "svg"
  ],
  "moduleNameMapper": {
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/test/fileMock.js",
    "^.+\\.(css|less|scss)$": "<rootDir>/test/styleMock.js"
  }
}
Run Code Online (Sandbox Code Playgroud)

我会错过任何设置吗?

Eye*_*Eye 4

Jest 不会推动setup.js脚本完成转译步骤。Jest 将转译您的测试代码,然后在不转译的情况下运行您的设置脚本,然后运行您的测试代码。只要用 ES5 语法编写就可以了。