【问题标题】:How do I specify module paths for Jest tests?如何为 Jest 测试指定模块路径?
【发布时间】:2014-10-14 06:23:51
【问题描述】:

它似乎不尊重 NODE_PATHS 环境变量,而只是在当前目录中查找。

【问题讨论】:

    标签: reactjs jestjs


    【解决方案1】:

    遇到了同样的问题,我就是这样解决的。 假设您正在尝试导入 src/components/404.vue 在你的 package.json 中:

    ... 
      "jest": {
        "modulePaths": [
          "<rootDir>/src/components"
        ]
      }
    ...
    

    现在可以在您的 404.test.js 中将绝对路径“/src/components/”解析为:

    import Page404 from '404.vue'
    

    【讨论】:

      【解决方案2】:

      把它放在你的 package.json 中

      "jest": {
        "modulePaths": [
          "<rootDir>"
        ],
      },
      

      【讨论】:

        【解决方案3】:

        来自 Jest 文档:

        https://jestjs.io/docs/en/configuration

        package.json 中定义:

        "jest": {
          "modulePaths": [
            "<rootDir>/src/"
          ],
        },
        

        【讨论】:

          【解决方案4】:

          遇到了 Jest 不尊重 webpack 模块解析别名的相同问题。

          jest.config.js:

          moduleNameMapper: {
              'Services(.*)$': '<rootDir>/src/services/$1'
          }
          

          您现在可以使用以下导入语句:

          import { validateEmail } from 'Services/utilities';
          

          【讨论】:

            【解决方案5】:

            Jest 不读取 NODE_PATH。在我们使用 webpack 的项目中,我们遇到了 aliasmoduleDirectories 的问题。 Jest 没有正确解析路径。所以我们这样解决了: 假设你要导入

            import SomeComp from 'components/SomeComp';
            

            位于/src/components/SomeComp/index.js

            package.json 中定义:

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

            【讨论】:

            【解决方案6】:

            目前,Jest 在其模块解析代码中不支持NODE_PATH(除了它从未构建过之外没有其他原因)。

            我们现在正在这里跟踪问题:https://github.com/facebook/jest/issues/102

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-02-12
              • 2013-05-19
              • 1970-01-01
              • 1970-01-01
              • 2018-09-14
              • 1970-01-01
              • 2016-11-14
              • 2021-09-08
              相关资源
              最近更新 更多