开玩笑 setupTestFrameworkScriptFile 或 setupFiles ES6 语法

Posted

技术标签:

【中文标题】开玩笑 setupTestFrameworkScriptFile 或 setupFiles ES6 语法【英文标题】:Jest setupTestFrameworkScriptFile or setupFiles ES6 syntax 【发布时间】:2018-04-02 05:05:53 【问题描述】:

我是开玩笑的新手。我在圆形 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)

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


  "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"
  

我错过了任何设置吗?

【问题讨论】:

您的测试运行情况如何?最新的 Node 版本原生支持 ES6(当然模块语法除外)。 【参考方案1】:

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

【讨论】:

可能不是一个好主意。这是一个设置文件,而不是源文件。

以上是关于开玩笑 setupTestFrameworkScriptFile 或 setupFiles ES6 语法的主要内容,如果未能解决你的问题,请参考以下文章

开玩笑测试中 UnhandledPromiseRejectionWarning 的含义是啥?

开玩笑 没有找到测试

流星反应开玩笑测试

Gitlab - 开玩笑测试 - 分段错误(核心转储)

使用开玩笑超时错误进行排毒:“分配给未定义”

开玩笑测试问题