微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行测试给 ENAMETOOLONG: name too long 错误在 Jimp.create()

如何解决运行测试给 ENAMETOOLONG: name too long 错误在 Jimp.create()

我有一个带有 typescript 的 React 应用程序,我使用 Jest 作为测试运行程序。 我正在尝试使用 Jimp 从 base64 字符串创建图像。运行应用程序时它工作正常,但我的测试因错误而崩溃:

ENAMetoOLONG: name too long,open 'data:image/png;base64,iVBORw0KG...

测试使用存储在文件中的字符串:

const importResults = await artifactsImporter.importFromImage(artifactsSourceImagesMock[0]);

图像是在 importFromImage() 中使用 Jimp.create() 方法创建的(如果我添加一个 console.log(base64Image) 并将其复制/粘贴到浏览器中,图像将正确显示):

jimpImage = await Jimp.create(base64Image);

我的客人是 Jimp 以某种方式尝试使用字符串作为路径加载文件,而不是从 base64 字符串创建它。我不知道这是配置问题还是 jest、jsdom、Jimp 或任何其他库中的错误

我的 jest.config

{
  collectCoverage: true,coverageDirectory: 'coverage',coverageReporters: ['json','text','lcov','clover'],modulefileExtensions: ['js','json','jsx','ts','tsx','node'],moduleNameMapper: {
    '\\.((s)?css|less|jpg|png)$': '<rootDir>/src/test/style-mock.ts',},preset: 'ts-jest',setupFilesAfterEnv: ['<rootDir>/src/react-app/setupTests.ts'],testMatch: ['**/__tests__/**/*.[jt]s?(x)','**/?(*.)+(spec|test).[tj]s?(x)'],testPathIgnorePatterns: ['\\\\node_modules\\\\','/.stryker-tmp/','/dist/'],transform: {
    '^.+\\.jsx?$': 'babel-jest',}

我的 tsconfig.json

{
  "compilerOptions": {
    "target": "es6","lib": [
      "dom","dom.iterable","esnext"
    ],"outDir": "dist","module": "esnext","skipLibCheck": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"strict": true,"forceConsistentCasingInFileNames": true,"noFallthroughCasesInSwitch": true,"moduleResolution": "node","resolveJsonModule": true,"noEmit": true,"jsx": "react-jsx","noUnusedLocals": true,"noUnusedParameters": true,"noImplicitAny": true,"allowJs": true,"isolatedModules": true
  },"include": [
    "src","src/index.tsx"
  ]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。