当前位置: 首页 > 面试题库 >

使用Jest和Webpack别名进行测试

闻人树
2023-03-14
问题内容

我希望能够在使用jest时使用webpack别名来解析导入,并且最好参考webpack.aliases以避免重复。

开玩笑的conf:

  "jest": {
    "modulePaths": ["src"],
    "moduleDirectories": ["node_modules"],
    "moduleNameMapper": {
      "^@shared$": "<rootDir>/shared/",
      "^@components$": "<rootDir>/shared/components/"
    }
  },

Webpack别名:

exports.aliases = {
    '@shared': path.resolve(paths.APP_DIR, 'shared'),
    '@components': path.resolve(paths.APP_DIR, 'shared/components'),
};

进口:

import Ordinal from '@shared/utils/Ordinal.jsx';
import Avatar from '@components/common/Avatar.jsx';

由于某种原因,@导致了问题,因此将其删除(使用别名和导入)时,可以找到sharedcomponents仍然无法解决。

 FAIL  src/shared/components/test/Test.spec.jsx
  ● Test suite failed to run

    Cannot find module '@shared/utils/Ordinal.jsx' from 'Test.jsx'

我尝试使用jest-webpack-alias,babel-plugin-module-resolver和Jest / Webpack
docs


问题答案:

这似乎已解决。

以下是有效的设置:

版本号

"jest": "~20.0.4"

"webpack": "^3.5.6"

package.json

"jest": {
  "moduleNameMapper": {
    "^@root(.*)$": "<rootDir>/src$1",
    "^@components(.*)$": "<rootDir>/src/components$1",
  } 
}

webpack.shared.js

const paths = {
  APP_DIR: path.resolve(__dirname, '..', 'src'),
};

exports.resolveRoot = [paths.APP_DIR, 'node_modules'];

exports.aliases = {
  '@root': path.resolve(paths.APP_DIR, ''),
  '@components': path.resolve(paths.APP_DIR, 'components'),
};


 类似资料:
  • 我有一个文件,其中包含以下几个helper函数,这些函数在不同的组件中使用。 下面是一个组件,它使用了文件中定义的函数。我正在为组件编写测试,我想模拟这里调用的外部函数。 我对jest/enzyze是新手,我不知道如何模拟外部函数buildoptions。我不知道如何模拟外部的buildOptions功能。有人能帮我做这个吗。下面是我的测试代码:

  • 问题内容: 我正在使用React / Redux / Webpack开发一个可运行的Web应用程序,现在开始将测试与Mocha集成在一起。 我遵循Redux文档中有关编写测试的说明,但是现在我的webpack别名遇到了问题。 例如,看看我的动作创建者之一的此测试的imports部分: 正如评论所暗示的那样,mocha在引用别名依赖项时无法解析我的导入语句。 因为我还是Webpack的新手,所以这是

  • 问题内容: react:16.3.0-alpha.1 jest: “22.3.0” enzyme: 3.3.0 typescript: 2.7.1 码: 测试: 错误: 问题答案: 解: 1:使用异步/等待语法。 2:使用安装座(不浅)。 3:等待异步组件生命周期。 例如:

  • 我试图理解Jests的异步测试。 我的模块有一个函数,它接受一个布尔值并返回一个值的承诺。executer函数调用 ,在超时回调中,promise根据最初提供的布尔值进行解析或拒绝。代码如下所示: 我想用Jest来测试一下。我想我需要使用Jest提供的模拟计时器,所以我的测试脚本看起来有点像这样: 无论是否调用 ,我都会得到以下错误/失败测试 你能解释一下我哪里出错了吗?我该怎么做才能通过考试,保

  • 问题内容: 我开始研究ReactJS。看来Facebook刚刚发布了15.0.1版本。去年,我在使用JSXTransformer的0.12.x版本中研究了这个框架,现在看来它已不复存在。 现在看来,几乎每个教程都建议将最新的React与Webpack结合使用。有没有办法完全不使用webpack?我正在尝试使用React 15.xx的艰巨任务找到一个很好的有效示例 任何帮助,将不胜感激。 问题答案:

  • 我想用Jest做一个测试。 我使用