当前位置: 首页 > 知识库问答 >
问题:

无法使用编辑器测试jest-意外标记

姜永贞
2023-03-14

在应用程序上运行jest失败,原因是:

Details:

/home/**/node_modules/monaco-editor/esm/vs/editor/editor.api.js:5
import { EDITOR_DEFAULTS } from './common/config/editorOptions.js';
       ^

SyntaxError: Unexpected token {

> 1 | import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";
    | ^
  2 | 
  3 | /**
  4 |  * Get create function for the editor.

  at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
  at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
  at Object.<anonymous> (src/utils/editor-actions.js:1:1)

应用程序已经安装了jestbabeljest的软件包。

巴别塔配置:

const presets = [
  [
    "@babel/env",
    {
      targets: {
        edge: "17",
        firefox: "60",
        chrome: "67",
        safari: "11.1"
      },
      useBuiltIns: "usage",
      corejs: 3,
    }
  ],
  "@babel/preset-react"
];

const plugins = [
  "@babel/plugin-proposal-object-rest-spread",
  "@babel/plugin-proposal-class-properties",
  "babel-plugin-styled-components"
];

module.exports = { presets, plugins };

共有3个答案

夏侯博
2023-03-14

我对Jest和摩纳哥也有同样的问题,为了通过测试,我必须:

  1. 为摩纳哥编辑添加moduleNameMapper:#133(评论)
  2. 配置setupTests.js,如下所述:stackOverflow

我正在使用:

  • “笑话”:“^24.9.0”
  • “巴别塔笑话”:“24.9”
  • “摩纳哥编辑”:“^0.20.0”
  • “编辑”:“0.33.0”,
  • “摩纳哥编辑器网页包插件”:“^1.8.2”
濮俊美
2023-03-14

在这个问题上帮助我的唯一解决方法(从这里开始):

在文件夹__mocks__创建文件react-monaco-editor.js与内容:

import * as React from 'react';

export default function MonacoEditor() {
  return <div />;
}
戚森
2023-03-14

从monaco延迟加载模块的文档中建议的导入语句会导致esm文件夹,jest对此并不熟悉。

import * as monaco from "monaco-editor/esm/vs/editor/editor.api.js";

默认情况下,babeljest不会转换node\u模块,因此任何引用monaco编辑器的内容都会出错。一种可能的解决方案是,如文档中所述,通过transformIgnorePatternsmonaco编辑器包包含到编译步骤中

将以下内容添加到jest配置:

{
  "transformIgnorePatterns": [
     "node_modules\/(?!(monaco-editor)\/)"
  ]
}

注:如果您使用的是jest-dom,它可能会开始抱怨没有从monaco-editor中实现某些功能,您可以通过以下方式模拟它:

jest.mock("monaco-editor/esm/vs/editor/editor.api.js");

 类似资料:
  • 当我运行测试时,代码中出现了“意外的令牌错误: 错误被抛出到“( 我写过笑话测试。这是我第一次使用酶和react编写测试用例。所以我不熟悉这个设置。我已经安装了:babel jest、react dom、babel插件转换导出扩展、enzyme-adapter-react-16、react测试渲染器、@babel/preset env和@babel/core package.json: jest.

  • 我在将单元测试集成到项目的特定文件夹中时遇到问题。 我的架构如下: 作业板和管理面板都包含指向共享的符号链接,位于,每个都包含安装了babel eslint的文件夹。shared不包含node_modules文件夹,它依赖于另外两个文件夹的node_模块。 有了这个架构,我成功地配置了我正在使用的所有工具(Webpack、eslint、eslint loader等等,但不是Jest)。 问题是,当

  • vscode调试一个程序,但是程序运行完后,却无法结束.终端可以正常使用.这个调试控制板无法关闭,如果再发起一次调试,就会如下所示 这是为什么,如何解决

  • 问题内容: 我有一个取决于环境变量的应用程序,例如: 我想测试例如: 可以通过节点env变量设置APP_PORT。 或某个应用程序正在使用以下命令设置的端口上运行 我如何用Jest做到这一点?我可以在每次测试之前设置这些变量,还是应该以某种方式模拟它? 问题答案: 在每次测试之前重设resetModules,然后在测试内部动态导入模块很重要: 如果您在运行Jest之前寻找一种加载env值的方法,请

  • 我使用的数据表版本如下: 以及以下版本的编辑器、按钮和选择: 这是我的js文件,它调用我的API并读取数据和编辑器: var编辑器;//在示例中使用全局提交和返回数据渲染 } ); 这是我的HTML: 这是我的JSON文件(已缩短)