Angular-Jest首次单单元测试耗时过长问题求助
关于Angular Jest单元测试清除缓存后运行极慢的问题
我是Angular Jest单元测试新手,已完成项目配置。每次执行--clearCache后,运行简单单元测试耗时500-1500秒,但首次运行后仅需30秒,这个问题在流水线环境中造成严重困扰。我排查过Jest旧版本相关问题,调整配置后仍未解决。以下是相关测试代码及配置信息:
单元测试代码
describe('LoginPage', () => { let component: any; let harness: RouterTestingHarness; beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [SigninComponent, ToastComponent, InputComponent], imports: [CommonModule,BrowserAnimationsModule, RouterTestingModule,MyCommonLibModule FormsModule], providers: [ provideRouter([{ path: 'auth/signin', component: SigninComponent }]), Router, { provide: AuthenticationService, useValue: { CognitoUserpoolLogin: jest.fn() } }, { provide: AuthIntegrationService, useValue: { triggerEventOnLogin: jest.fn() } }, { provide: ActivatedRoute, useValue: { params: of({ page: '' }), } } ], }).compileComponents(); harness = await RouterTestingHarness.create(); component = await harness.navigateByUrl('auth/signin'); }); it('should create the app', async() => { expect(component).toBeInstanceOf(SigninComponent); }); })
依赖版本(package.json)
"@angular/core": "^16.2.0", "jest": "^29.7.0", "jest-preset-angular": "^14.0.0", "@types/jest": "^29.5.11", "ts-node": "^10.9.2", "tslib": "^2.3.0",
tsconfig.spec.ts配置
{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/spec", "types": [ "jest" // 1 ], "esModuleInterop": true, // 2 "emitDecoratorMetadata": true // 3 }, "files": [ "src/polyfills.ts" ], "include": [ "src/**/*.spec.ts", "src/**/*.d.ts" ] }
Jest配置
const esModules = ['ngx-otp-input','@angular', '@ngrx', "@mylib/my-common-lib", "@aws-amplify", "@aws-sdk", "ngx-cookie-service", "ngx-spinner", "primeng"]; const config: Config = { modulePaths: ["<rootDir>"], clearMocks: true, collectCoverage: true, coverageDirectory: "coverage", coverageProvider: "v8", moduleDirectories: [ "node_modules" ], preset: 'jest-preset-angular', setupFilesAfterEnv: ['<rootDir>/setup-jest.ts'], testEnvironment: "jsdom", transformIgnorePatterns: [ `<rootDir>/node_modules/(?!${esModules.join('|')})` ], }
内容的提问来源于stack exchange,提问作者Rajesh Patra
相关产品推荐
相关产品推荐

