Jest: cannot find module required inside module to be tested (relative path)

前端 未结 5 1346
耶瑟儿~
耶瑟儿~ 2021-02-13 15:49

I have this component:

import React from \'react\';
import VideoTag from \'./VideoTag\';
import JWPlayer from \'./JWPlayer\';

class VideoWrapper extends React.C         


        
相关标签:
5条回答
  • 2021-02-13 16:16

    I also had to add the moduleNameMapper to my jest configuration for my tsconfig path maps in order to get my tests to recognize the path maps I had setup. Something like this:

    "moduleNameMapper": {
          "^yourPath/(.*)": "<rootDir>\\yourPath\\$1"
        }
    

    Hopefully this will help someone down the line!

    0 讨论(0)
  • 2021-02-13 16:20

    The problem were not the paths, It was looking for modules only with .js extension, it worked after adding the .jsx in the jest configuration:

    "moduleFileExtensions": [
      "js",
      "jsx"
    ]
    
    0 讨论(0)
  • 2021-02-13 16:30

    For others ending up here trying to use Jest with TypeScript: you need to include ts in the moduleFileExtensions, e.g.:

    "moduleFileExtensions": [
      "js",
      "jsx",
      "json",
      "node",
      "ts"
    ]
    

    You also need a transform for *.ts files:

    transform: {
      "^.+\\.vue$": "vue-jest",
      "^.+\\.js$": "babel-jest",
      "^.+\\.(ts|tsx)$": "ts-jest"
    },
    
    0 讨论(0)
  • 2021-02-13 16:30

    In my case the issue was the import is also case sensitive. Check your import statement and ensure that it matches the filename exactly!

    0 讨论(0)
  • 2021-02-13 16:36

    You don't need to add moduleFileExtensions in the configuration for these two options since jest uses ['js', 'jsx', 'json', 'node'] as default file extensions. (Unless you want to specifically skip any option that is)

    0 讨论(0)
提交回复
热议问题