Jest s'attend à ce que les tests soient dans le dossier __tests__ ou soient nommés blah.test.js. Je n'aime aucun de ces modèles. Je veux que mes fichiers de test soient dans /test
et en les nommant test/index.ios.test.js
semble redondant et idiot. Mon premier coup à ceci est de changer ma configuration de plaisanterie dans package.json pour être:
"jest": {
"testPathDirs": ["test"],
"testRegex": "\\.(js|jsx)$",
"preset": "react-native"
}
Qui trouvent les tests réussis mais échouent tous:
Cannot find module 'setupDevtools' from 'setup.js'
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:151:17)
at Object.<anonymous> (node_modules/react-native/jest/setup.js:23:1)
Cette fonction est dans node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js
. Comment dire à Jest où le trouver?
J'ai résolu le problème en définissant simplement l'expression régulière afin qu'elle trouve tout .js
fichiers dans mon ./test
dossier:
"jest": {
"preset": "react-native",
"globals": {
"__DEV__": true
},
"testRegex": "./test/.*.js$",
"rootDir": "."
},
(jcollum ici: je ne sais pas quoi __DEV__
est en train de le faire mais une erreur sera lancée si ce n'est pas le cas. plaisanterie 17.0.3)
Je pense que la meilleure façon de procéder est de configurer testMatch . Il est par défaut:
[ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]
Vous pouvez donc soit changer __tests__
à tests
ou ajoutez une nouvelle entrée dans le tableau qui vérifie les deux. Mon utilisation de ce qui suit dans mon package.json:
"jest": {
"testMatch": [ "**/tests/**/*.[jt]s?(x)", "**/?(*.)+(spec|test).[jt]s?(x)" ]
},