Getting ParseError: Identifier is expected on importing svelte files for testing with jest
Getting ParseError: Identifier is expected on importing svelte files for testing with jest
我的 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());
});
});
请注意,我只是为了测试目的使用了一个开玩笑的模拟函数,但是每当我导入一个 svelte 文件时,就像在这种情况下 App.svelte 我会收到如下错误
失败src/test/test.spec.js
● 测试套件未能 运行
ParseError: Identifier is expected
我找到了这个解析错误的可能解决方案。显然,IDE 无法解析在样式标签内定义的 test.svelte 文件中的某些样式 类,这就是它显示 ParseError 的原因。
我建议遇到此错误的任何人彻底检查您的 svelte 文件是否有错误,因为 svelte-testing-lib 在执行任何测试函数之前会解析整个文件。
我的 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());
});
});
请注意,我只是为了测试目的使用了一个开玩笑的模拟函数,但是每当我导入一个 svelte 文件时,就像在这种情况下 App.svelte 我会收到如下错误
失败src/test/test.spec.js ● 测试套件未能 运行
ParseError: Identifier is expected
我找到了这个解析错误的可能解决方案。显然,IDE 无法解析在样式标签内定义的 test.svelte 文件中的某些样式 类,这就是它显示 ParseError 的原因。 我建议遇到此错误的任何人彻底检查您的 svelte 文件是否有错误,因为 svelte-testing-lib 在执行任何测试函数之前会解析整个文件。