开玩笑测试失败 -> 测试套件无法运行:PNG 语法错误:无效或意外的令牌



我最近开始使用monoreto,给我的任务是在当前的monoreto react项目中引入jest:但当我尝试运行一个非常基本的测试时,测试开始失败,并出现以下错误:

● Test suite failed to run
/Users/sumitverma/Desktop/prj-web/packages/prj-components/src/assets/images/videoThumbnail.png:1
�PNG

SyntaxError: Invalid or unexpected token
3 | import classnames from 'classnames';
> 5 | import VideoPlaceholder from 'itComponent/assets/images/videoThumbnail.png';
| ^
6 | import FontIcon from '../../atoms/FontIcon';
7 | 
8 | const placeHolderContainerClass = classnames('full-width', 'full-height', 'd-flex', 'justify-content-center', 'align-items-center');

之后,我在谷歌上搜索了一下,找到了一个解决方案(用自定义文件模拟它们[点击此处][1](

我做了,我的jost.config.js如下所示:-

const packageName = 'prj-tick';
module.exports = {
rootDir: '../../',
name: packageName,
displayName: packageName,
roots: [`<rootDir>/packages/${packageName}`],
moduleNameMapper: {
moment: 'moment/moment.js',
'itComponent/(.*)': '<rootDir>/packages/prj-components/src/$1',
'\.(css|less|scss|gif|jpg|svg)$': 'identity-obj-proxy',
tstyles: '<rootDir>/packages/prj-styles-next/scss',
'\.(png)$':'<rootDir>/assetsTransformer.js'
},
moduleDirectories: ['node_modules', `<rootDir>/packages/${packageName}/app`, `<rootDir>/packages/prj-components/src`]
};

我的assetsTransformer.js做了它应该做的事情:-

const path=require("path"(;

module.exports={进程(src、文件名、配置、选项({return'module.exports='+JSON.stringfy(path.basename(filename((+';';},};

问题仍然存在,我找不到任何解决方案。。。有人面临同样的问题吗。[1] :https://github.com/facebook/jest/issues/2663

我在moduleNameMapper对象的序列中发现了问题。基本上,把

'\.(png)$':'<rootDir>/assetsTransformer.js'

在对象的顶部(基本上使它成为第一个键(为我解决了问题。

就我个人而言,只需使用identity-obj-proxy作为样式,并简单地模拟我的img文件,如下所示:

module.exports = {
moduleNameMapper: {
"\.(jpg|jpeg|png|svg)$": "<rootDir>/__mocks__/fileMock.js",
"\.(css|less|scss|sass)$": "identity-obj-proxy"
},
}

其中CCD_ 2只是空的CCD_。

最新更新