Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

591
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!