Je fais des trucs un peu bizarres en utilisant jest
pour tester où j'écris des trucs sur le disque. Si j'utilise le drapeau watch
en plaisantant, je constate (bien évidemment) qu'à chaque fois que j'écris quelque chose sur le disque, les tests se déclenchent à nouveau.
Je n'ai actuellement aucune sorte de configuration, et j'ai jeté un œil à la documentation mais je ne sais vraiment pas quelle option je dois utiliser pour supprimer la surveillance de fichiers particuliers. Je crois que je peux voir des options pour exclure le code de la couverture du code, l'exécution des tests mais pas l'observateur réel.
Dans mon cas, j'ai une configuration comme celle-ci et je veux juste supprimer mon répertoire de résultats:
__tests__
__snapshots__
(créé par jest)results
(créé par moi et le répertoire à exclure)Quelqu'un peut-il nous éclairer?
A partir de la documentation, vous devez ajouter modulePathIgnorePatterns qui est un tableau de valeurs de chaîne qui sera comparé à
modulePathIgnorePatterns [tableau <chaîne>] #
(par défaut: []) Un tableau de chaînes de modèle d'expression rationnelle qui sont mises en correspondance avec tous les chemins de module avant que ces chemins soient considérés comme "visibles" par le chargeur de module. Si le chemin d'un module donné correspond à l'un des modèles, il ne sera pas requis () - capable dans l'environnement de test. Ces chaînes de modèle correspondent au chemin complet. Utilisez le jeton de chaîne <rootDir> pour inclure le chemin d'accès au répertoire racine de votre projet pour l'empêcher d'ignorer accidentellement tous vos fichiers dans différents environnements qui peuvent avoir des répertoires racine différents. Exemple: ['<rootDir>/build /'].
https://facebook.github.io/jest/docs/configuration.html#modulepathignorepatterns-array-string
Ajoutez ceci à votre config ...
modulePathIgnorePatterns: ["directoryNameToIgnore"]
ou :
modulePathIgnorePatterns: ["<rootDir>/dist/"]
pour exclure un répertoire du test jest, utilisez testPathIgnorePatterns
"testPathIgnorePatterns": ["directory to ignore"]
ci-dessous dans package.json j'ai configuré pour ignorer le répertoire "src"
{
"name": "learn-test",
"jest": {
"testPathIgnorePatterns": ["src"]
},
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.4.1",
"react-dom": "^16.4.1",
"react-scripts": "1.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "jest --watch",
"eject": "react-scripts eject",
},
"devDependencies": {}
}
Basé sur les documents Jest
watchPathIgnorePatterns
devrait être la façon dont vous voulez aller. Cela fonctionne dans Jest > 23.x.x
J'ai eu le même problème quand j'avais un répertoire qui ne devait pas être testé, même si je voulais toujours qu'il soit à l'intérieur de __tests__
répertoire (par exemple __mocks__
).
Comme @Chris Hawkes l'a souligné dans les commentaires, vous ne devez pas utiliser de chemins d'accès relatifs dans ce cas (pas de barres obliques). Donc à l'intérieur de votre package.json
ajout de fichier:
jest: {
"modulePathIgnorePatterns": ["__mocks__"]
}
Cela a résolu mon problème.