【问题标题】:Getting ParseError: Identifier is expected on importing svelte files for testing with jest获取 ParseError: Identifier is expected on importing svelte files for testing with jest
【发布时间】:2020-10-02 03:05:55
【问题描述】:

我的 Jest 配置详细信息是

jest.config.js

module.exports = {
    transform: {
        '^.+\\.svelte$': 'svelte-jester',
        '^.+\\.js$': 'babel-jest',
    },
    moduleFileExtensions: ['js', 'svelte'],
}

babel.config.js

module.exports = {
    presets: [
        [
            '@babel/preset-env',
            {
                targets: {
                    node: 'current',
                },
            },
        ],
    ],
}

package.json

  .
  .
  "@babel/core": "^7.10.2",
    "@babel/preset-env": "^7.10.2",
    "babel-jest": "^26.0.1",
    "jest": "^26.0.1",
    "svelte-jester": "^1.0.6",
    "@testing-library/svelte": "^3.0.0"
  },
  "scripts": {
    "build": "cross-env NODE_ENV=production webpack",
    "dev": "webpack-dev-server --content-base public",
    "test": "jest src",
    "test:watch": "npm run test -- --watch"
  },
  .
  .

我创建了 src/test 文件夹,其中我的 test.spec.js 如下

import {fireEvent, render} from '@testing-library/svelte';

import App from '../App.svelte';

describe('test', () => {
    test('Just a mock test', async () => {
        const myMock = jest.fn();
        console.log(myMock());

        myMock.mockReturnValueOnce(10).mockReturnValueOnce('x').mockReturnValue(true);

        console.log(myMock(), myMock(), myMock(), myMock());
    });
});

请注意,我使用 jest mock 函数只是为了测试目的,但每当我导入一个 svelte 文件时,如本例中的 App.svelte,我都会收到如下错误

失败 src/test/test.spec.js ● 测试套件无法运行

ParseError: Identifier is expected

【问题讨论】:

    标签: javascript testing jestjs svelte


    【解决方案1】:

    我找到了解决此解析错误的可能方法。显然,IDE 无法解析在 style 标签内定义的 test.svelte 文件中的某些样式类,这就是它显示 ParseError 的原因。 我建议遇到此错误的任何人彻底检查您的 svelte 文件是否有错误,因为 svelte-testing-lib 在执行任何测试功能之前会解析整个文件。

    【讨论】:

      猜你喜欢
      • 2020-07-11
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 2020-11-24
      • 2022-12-26
      • 2021-09-13
      • 2018-08-31
      • 2017-10-02
      相关资源
      最近更新 更多