Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

590
Vistas
Jest Projects en un Monorepo no puede encontrar archivos de configuración en proyectos

Tener problemas para configurar proyectos de broma. El proyecto A tiene alguna configuración adicional que ejecuta (setupJest, crea algunos emparejadores personalizados, etc.) que el proyecto B no tiene. Cuando ejecuto jest, aparece este error para cada prueba que intenta ejecutar:

 Test suite failed to run File not found: <rootDir>/src/tsconfig.spec.json (resolved as: repo\src\tsconfig.spec.json)

No hay una carpeta src en la raíz del repositorio, solo dentro de las carpetas de proyectos individuales. Tampoco hago referencia a src\tsconfig.spec.json en ninguna parte de mis configuraciones. Así que estoy un poco confundido en este punto en cuanto a qué probar. Intenté poner rootDir en todo y deletrear las rutas, pero nada parece funcionar. Cualquier sugerencia, idea o ayuda sería REALMENTE bienvenida.

Como referencia, el repositorio es una carpeta en una unidad de Windows que contiene el repositorio. por ejemplo, c:\nombre de la empresa\nombre del producto\

Esta es mi estructura

 repo |- jest.config.js |- projects |- projectA |- jest.config.js |- tsconfig.spec.json |- src |- setupJest.js |- projectB |- jest.config.js |- tsconfig.spec.json

root jest.config.js:

 module.exports = { preset: 'jest-preset-angular', projects: [ '<rootDir>/projects/projectA/jest.config.js', '<rootDir>/projects/projectB/jest.config.js' ] reporters: ['jest-silent-reporter'], };

proyectoA broma.config.js:

 module.exports = { globals: { 'ts-jest': { tsConfig: 'tsconfig.spec.json', stringifyContentPathRegex: '\\.html$', astTransformers: ['jest-preset-angular/InlineHtmlStripStylesTransformer'], diagnostics: false, }, }, setupFilesAfterEnv: ['src/setupJest.ts'], };

proyectoB jest.config.js:

 module.exports = { globals: { 'ts-jest': { tsConfig: 'tsconfig.spec.json', stringifyContentPathRegex: '\\.html$', astTransformers: ['jest-preset-angular/InlineHtmlStripStylesTransformer'], diagnostics: false, }, }, };
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

De acuerdo, después de 4 días de búsqueda intensa a través de los problemas informados en github y un puñado de tutoriales de youtube que pude encontrar, me confundí para hacer que esto funcionara.

raíz jest.config.js

 globals: { 'ts-jest': { astTransformers: ['jest-preset-angular/InlineHtmlStripStylesTransformer'], diagnostics: false, stringifyContentPathRegex: '\\.html$', }, }, moduleDirectories: ['node_modules', './'], modulePaths: ['node_modules', './'], preset: 'ts-jest', projects: ['projects/projectA', 'projects/projectB'], reporters: ['jest-silent-reporter'], testEnvironment: 'node', transform: { '\\.ts$': ['ts-jest'], '\\.html$': ['ts-jest'], }, verbose: true,

proyectoA/B jest.config.js

 module.exports = { globals: { 'ts-jest': { astTransformers: ['jest-preset-angular/InlineHtmlStripStylesTransformer'], diagnostics: false, stringifyContentPathRegex: '\\.html$', tsConfig: '<rootDir>/projects/projectA/tsconfig.spec.json', }, }, displayName: 'projectA', moduleDirectories: ['node_modules', './'], modulePaths: ['node_modules', './'], name: 'projectA', rootDir: './../../', testMatch: ['<rootDir>/projects/projectA/**/*.spec.ts'], transform: { '\\.ts$': ['ts-jest'], '\\.html$': ['ts-jest'], }, };

Resulta que la parte realmente importante es la pieza "rootDir: './../../'". El resto fue algo específico para corregir los otros errores que surgieron mientras los solucionaba, pero una vez que definí correctamente el rootDir de los subproyectos, en realidad comenzó a verlos todos correctamente. Esa es la clave. jest.config.js (independientemente de dónde se encuentre en el proyecto) define rootDir relativo a sí mismo. Entonces, cuando llegó a una carpeta de proyecto y accedió a la configuración, reasignó el rootDir y se perdió. Definir la raíz de los subproyectos como lo mismo que la configuración principal de jest soluciona el problema. La documentación de Jest no es exactamente clara en este punto.

over 4 years ago · Santiago Trujillo Denunciar

0

jest.config.json en cada proyecto.

 module.exports = { preset: 'ts-jest', globals: { 'ts-jest': { tsconfig: require.resolve('./tsconfig.jest.json'), }, }, };

require.resolve encontrará el camino correcto

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda