J'ai un test unitaire en cours d'exécution à l'aide du
// jest.lib.config.js const baseConfig = require('./jest.base.config'); module.exports = { ...baseConfig, roots: ['<rootDir>/projects'], };
Lorsque j'exécute la commande npm run test:app
cela fonctionnait bien dans Angular 8, j'ai maintenant mis à jour l'angular avec la dernière version 10. J'obtiens une erreur comme ci-dessous sur chaque composant de test
La suite de tests n'a pas pu s'exécuter
module.exports = { preset: 'jest-preset-angular', setupFilesAfterEnv: ['<rootDir>/setupJest.ts'], moduleNameMapper: { "^@pts-ngx/core": "<rootDir>/dist/pts-ngx/core", "^@pts-ngx/core/(.*)$": "<rootDir>/dist/pts-ngx/core/$1" } };
C'est l'un des composants confrontés à une erreur
const baseConfig = require('./jest.base.config'); module.exports = { ...baseConfig, roots: ['<rootDir>/src'], modulePaths: ['<rootDir>/dist'], modulePathIgnorePatterns: ['<rootDir>/src/app/shared'], moduleNameMapper: { "^@pts-ngx/core": "<rootDir>/dist/pts-ngx/core", "^@pts-ngx/core/(.*)$": "<rootDir>/dist/pts-ngx/core/$1", 'projects/pts-ngx/core/(.*)$': '<rootDir>/projects/pts-ngx/core/$1' } };
Configuration Jest
Configuration Jest.app
describe('DateSelectionComponent', () => { let component: DateSelectionComponent; let fixture: ComponentFixture<DateSelectionComponent>; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [DateSelectionComponent, SafePipe], imports: [ SharedModule, NgReduxTestingModule, RouterTestingModule.withRoutes([]) ], providers: [ { provide: PageAPIActions, useValue: { setPageState() { } } } ] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(DateSelectionComponent); component = fixture.componentInstance; Object.defineProperties(component, { page$: { value: of('value'), writable: true }, page: { value: { destination: 'value' }, writable: true }, startDate: { value: new NgbDate(2019, 2, 27), writable: true }, minDate: { value: new NgbDate(2019, 2, 27), writable: true } }); fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); it('Should Match Snapshot', async () => { (expect(fixture) as any).toMatchSnapshot(); }); });
Config de base Jest
TypeError: (options.astTransformers || []).map is not a function at ConfigSet.get (node_modules/ts-jest/dist/config/config-set.js:225:64) at ConfigSet.tsJest (node_modules/ts-jest/dist/util/memoize.js:43:24) at ConfigSet.get (node_modules/ts-jest/dist/config/config-set.js:297:41) at ConfigSet.versions (node_modules/ts-jest/dist/util/memoize.js:43:24) at ConfigSet.get (node_modules/ts-jest/dist/config/config-set.js:588:32) at ConfigSet.jsonValue (node_modules/ts-jest/dist/util/memoize.js:43:24) at ConfigSet.get [as cacheKey] (node_modules/ts-jest/dist/config/config-set.js:603:25) at TsJestTransformer.getCacheKey (node_modules/ts-jest/dist/ts-jest-transformer.js:126:36)
Config Jest.library
"jest": "^26.4.2", "jest-preset-angular": "^8.3.1",
3 Réponses :
essayez de mettre à jour "ts-jest" vers la dernière version (26.3.0)
Cela m'aide,
Pour nettoyer le cache sur le fichier angular.json, ajoutez le script ci-dessous
"scripts": { "clear_jest": "jest --clearCache" }
Puis exécutez npm run clear_jest
Si l'option ci-dessus ne fonctionne pas, essayez d'installer explicitement ts-jest par npm install --dev ts-jest
Cette erreur se produit principalement en raison de la mauvaise version de ts-jest
dans le fichier package.json.lock.
l'exécution de npm install --dev ts-jest a résolu mon problème.