Jestjs jest测试失败->测试套件无法运行:�PNG语法错误:无效或意外标记
我最近开始使用monorepo,给我的任务是在当前的monorepo react项目中引入jest:但当我尝试运行一个非常基本的测试时,测试开始失败,出现以下错误:Jestjs jest测试失败->测试套件无法运行:�PNG语法错误:无效或意外标记,jestjs,enzyme,Jestjs,Enzyme,我最近开始使用monorepo,给我的任务是在当前的monorepo 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
● 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]
我这样做了,我的jest.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`]
};
my assetsTransformer.js做了它应该做的事情:-
常量路径=要求“路径”
module.exports={processsrc,文件名,配置,选项{
返回'module.exports='+JSON.stringifypath.basenamefilename+';';},}
但问题仍然存在,我找不到任何解决办法。。。有人面临同样的问题吗。
[1] :我个人只需将identity obj proxy用于样式,并简单地模拟我的img文件,如下所示:
module.exports = {
moduleNameMapper: {
"\\.(jpg|jpeg|png|svg)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less|scss|sass)$": "identity-obj-proxy"
},
}
其中fileMock.js只是一个空的module.exports={}。我发现了这个问题,它在moduleNameMapper对象的序列中。 基本上,把
'\\.(png)$':'<rootDir>/assetsTransformer.js'
在对象的顶部,基本上使其成为第一个关键点为我解决了问题。是的,即使我尝试过。。但是对我来说,它不起作用。很抱歉回复得太晚……但是……是的,我得到了同样的错误。。我在monorepo上管理这件事。。我正在为其中一个包编写测试。我尝试在jest.config.js的两个位置模拟png,一个在根级别,另一个在包级别,但到目前为止都没有成功。事实上,问题是我需要来自不同包的图像。你是说在你的外部?我的RootDir有一个“packages”目录,该目录包含我的应用程序工作所需的所有包。。我正在为目录“packages”中的一个包编写测试,在这个测试包中,我需要一个“.png”文件,它位于同一个packages目录下的另一个包中。