Réception de l'erreur suivante lors de l'exécution de Jest
Cannot find module 'src/views/app' from 'index.jsx'
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
at Object.<anonymous> (src/index.jsx:4:12)
index.jsx
import AppContainer from 'src/views/app';
package.json
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,mjs}"
],
"setupFiles": [
"<rootDir>/config/polyfills.js"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
],
"moduleDirectories": [
"node_modules",
"src"
],
"moduleNameMapper": {
"^react-native$": "react-native-web"
},
"moduleFileExtensions": [
"web.js",
"js",
"json",
"web.jsx",
"jsx",
"node",
"mjs"
]
},
Mes tests exécutant des fichiers contenant uniquement des chemins d'accès relatifs dans l'arborescence s'exécutent correctement.
Pour clarifier, je cherche comment configurer Jest pour ne pas échouer sur les chemins absolus.
Depuis dans package.json
tu as:
"moduleDirectories": [
"node_modules",
"src"
]
Ce qui dit que chaque module que vous importez sera examiné node_modules
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\_ Et qui ne soit pas trouvé sera examiné dans le répertoire src
.
Puisque vous cherchez dans le répertoire src
, vous devriez utiliser:
import AppContainer from 'views/app';
Veuillez noter que ce chemin est absolu dans le répertoire src
, vous n'avez pas besoin de naviguer pour le localiser en tant que chemin relatif.
OU vous pouvez configurer votre répertoire racine dans moduleDirectories dans votre pakcage.json afin que tous vos composants puissent être importés comme vous le souhaitez.
Je pense que vous cherchez: racines ou modulePaths et moduleDirectories
Vous pouvez ajouter des chemins relatifs et absolus.
Je m'assurerais d'inclure <rootDir>
dans le tableau roots, <rootDir>
dans le tableau modulePaths et node_modules
dans le tableau moduleDirectories, à moins que vous n'ayez une bonne raison de les exclure.
"jest": {
"roots": [
"<rootDir>",
"/home/some/path/"
],
"modulePaths": [
"<rootDir>",
"/home/some/other/path"
],
"moduleDirectories": [
"node_modules"
],
}