在赛普拉斯测试中支持ES2018? (对象传播运算符)

时间:2018-06-04 07:37:14

标签: testing cypress

我尝试使用ES2018语法运行赛普拉斯测试:

describe("Cypress test", () => {

  const objA = { a: 1, b: 2 };
  const objB = { ...objA };

  ...
}

但是在执行时,我得到了:

SyntaxError: /....../cypress/loginTest.js: Unexpected token (29:17)
  27 | 
  28 |   const objA = { a: 1, b: 2 };
> 29 |   const objB = { ...objA };
     |                  ^

我还尝试使用以下插件检查browserify预设:

// plugins.js
const browserify = require("@cypress/browserify-preprocessor");

module.exports = (on) => {
  const options = browserify.defaultOptions;

  // Check presets
  console.log(options.browserifyOptions.transform[1][1].presets);

  on("file:preprocessor", browserify(options));
};

似乎已经设置了babel-preset-env

请问任何想法?

1 个答案:

答案 0 :(得分:1)

不确定这是否有帮助,但这对我有用:

仅使用cypress-webpack-preprocessor插件和示例here

,我就可以轻松地启用新的es功能(包括 spread运算符)。

可以在以下讨论中找到更多信息:https://github.com/cypress-io/cypress/issues/905赛普拉斯'documentation

注意 ,您还必须在node中将所需的 babel预设作为package.json依赖项包括在内文件并安装它们!

我还找到了这个预处理器:cypress-babel-esx-preprocessor,但是从没有尝试过,因为 webpacker解决方案直接起作用了。

最后,您可能还想观看this request cypress 的Electron中更新Chrome版本,因为它应该可以启用 es-2018 的盒子。