Búsqueda de sitios web

javascript - ¿Cómo puedo excluir archivos del seguimiento de Jest?


Estoy haciendo algunas cosas un poco extrañas usando Jest para pruebas, donde estoy escribiendo algunas cosas en el disco. Sin embargo, si uso el indicador watch en Jest, descubro (bastante obviamente) que cada vez que escribo algo en el disco, las pruebas se vuelven a ejecutar.

Actualmente no tengo ningún tipo de configuración, y he revisado la documentación, pero realmente no me queda claro qué opción necesito usar para suprimir la supervisión de archivos particulares. Creo que puedo ver opciones para excluir código de la cobertura de código y la ejecución de pruebas, pero no del observador en sí.

En mi caso, tengo una configuración como esta y solo quiero suprimir mi directorio de resultados:

  • __tests__
  • __snapshots__ (creado por Jest)
  • results (creado por mí y el directorio a excluir)
  • testfile1.js

¿Cómo puedo hacer esto?

Respuesta #1

En la documentación necesitas agregar modulePathIgnorePatterns, que es un arreglo de valores de cadena que se compararán con

modulePathIgnorePatterns [array<string>] #

(predeterminado: []) Un arreglo de cadenas de patrones regexp que se comparan con todas las rutas de módulos antes de que esas rutas sean consideradas 'visibles' para el cargador de módulos. Si la ruta de un módulo dado coincide con alguno de los patrones, no se podrá requerir() en el entorno de prueba. Estas cadenas de patrón coinciden con la ruta completa. Usa el token de cadena <rootDir> para incluir la ruta al directorio raíz de tu proyecto y evitar que accidentalmente se ignoren todos tus archivos en diferentes entornos que puedan tener diferentes directorios raíz. Ejemplo: ['<rootDir>/build/'].

https://facebook.github.io/jest/docs/configuration.html#modulepathignorepatterns-array-string

Agrega esto a tu configuración...

modulePathIgnorePatterns: ["directoryNameToIgnore"]

o :

modulePathIgnorePatterns: ["<rootDir>/dist/"]

Respuesta #2

Para excluir un directorio de las pruebas de Jest, usa testPathIgnorePatterns

testPathIgnorePatterns

"testPathIgnorePatterns": ["directory to ignore"]

Abajo en el archivo package.json, he configurado para ignorar el directorio "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": {}
    }

Respuesta #3

Tuve el mismo problema cuando tenía un directorio que no debía ser probado, aunque todavía quería que estuviera dentro del directorio __tests__ (por ejemplo, __mocks__).

No deberías usar rutas relativas en tal caso (sin barras). Así que dentro de tu archivo package.json agrega:

jest: {
  "modulePathIgnorePatterns": ["__mocks__"]
}

Eso resolvió mi problema.

Respuesta #4

Según la documentación de Jest, watchPathIgnorePatterns debería ser la forma en que quieres proceder. Eso funciona en Jest 23.x.x y posteriores.

Puedes agregar esta configuración a jest.config.js o package.json > jest

Respuesta #5

versión de jest: 27.2.1

Para excluir de la prueba y cobertura:

"testPathIgnorePatterns" : [
  "tests/login/default/MockStrategy.js",
],
coveragePathIgnorePatterns: [
  "tests/login/default/MockStrategy.js"
],

Artículos relacionados