首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Jest测试处理webpack装载器语法:感叹号raw-loader

用Jest测试处理webpack装载器语法:感叹号raw-loader
EN

Stack Overflow用户
提问于 2020-08-03 16:28:36
回答 2查看 616关注 0票数 2

我的React项目工作得很好。有些文件需要原始加载器,我不想弹出项目。因此,我有一些原始加载程序导入,如下所示:

代码语言:javascript
复制
import blank_md from '!!raw-loader!./assets/blank.md.txt';

但是jest会死于一个错误

代码语言:javascript
复制
Cannot find module '!!raw-loader!./assets/blank.md.txt' from ...

这类似于Jest issue 4868

在添加jest-raw-loader之后,我尝试添加到Jest的配置中:

代码语言:javascript
复制
"transform": { "^!!raw-loader!.*": "jest-raw-loader" }

但没有骰子。

使用mocking也是可以的。

EN

回答 2

Stack Overflow用户

发布于 2021-07-14 22:38:46

代码语言:javascript
复制
 moduleNameMapper: {
   
    "^!!raw-loader!.*": "jest-raw-loader",
} 

这将按照jest的要求加载所有的原始加载器导入。

票数 1
EN

Stack Overflow用户

发布于 2020-08-04 16:45:17

我能够使用Jest moduleNameMapper选项让Jest“使用”模拟文件。

好消息是Jest测试现在可以运行了。

坏消息是Jest仍然不知道如何加载文件,所以它将文件名提供给应用程序(而不是文件的内容)。这对我的测试来说还可以,但并不是最优的。

下面是我正在使用的一些工作设置。我在package.json文件中设置它们:

代码语言:javascript
复制
"jest": {
  "setupFiles": ["<rootDir>/src/tests/setup-register-context.js"], 
  "moduleNameMapper": {
    "^!!raw-loader!.*sdkExamples.*txt": "<rootDir>/src/tests/__mocks__/templateMock.txt",
    "^!!raw-loader!\\./toolbox.xml": "<rootDir>/src/tests/__mocks__/xmlMock.xml",
    "^!!raw-loader!.*/assets/startBlocks.xml": "<rootDir>/src/tests/__mocks__/xmlMock.xml",
    "!!raw-loader!.*md\\.txt": "<rootDir>/src/tests/__mocks__/mdMock.md"
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63226101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档