web-dev-qa-db-fra.com

Comment exclure des fichiers de jest watch?

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)
  • testfile1.js

Quelqu'un peut-il nous éclairer?

19
Ian

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/"]
27
Chris Hawkes

pour exclure un répertoire du test jest, utilisez testPathIgnorePatterns

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": {}
    }
6
manas

Basé sur les documents Jest

watchPathIgnorePatterns

devrait être la façon dont vous voulez aller. Cela fonctionne dans Jest > 23.x.x

watchPathIgnorePatterns

1
Nima Soroush

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.

1
Islam Murtazaev