Jestjs jest测试失败->测试套件无法运行:�PNG语法错误:无效或意外标记

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

我最近开始使用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 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目录下的另一个包中。