Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

501
Visualizações
Error de prueba de Nest.js: el uso de la instrucción "extiende registrador" no está permitido en Nest v8. Por favor, use "extiende ConsoleLogger" en su lugar

Aquí está el problema que tengo:

Estoy usando mi registrador personalizado en Nest.js:

 export class ReportLogger extends ConsoleLogger { verbose(message: string) { console.log('【Verbose】Reporting', message); super.verbose.apply(this, arguments); } log(message: string) { console.log('【Log】Reporting', message); super.log.apply(this, arguments); } }

Y el archivo log.interceptor.ts :

 export class LogInterceptor implements NestInterceptor { constructor(private reportLogger: ReportLogger) { this.reportLogger.setContext('LogInterceptor'); } intercept(context: ExecutionContext, next: CallHandler) { const http = context.switchToHttp(); const request = http.getRequest(); const now = Date.now(); return next .handle() .pipe( tap(() => this.reportLogger.log( `${request.method} ${request.url} ${Date.now() - now}ms`, ), ), ); } }

Y aquí está el archivo main.ts :

 async function bootstrap() { const reportLogger = new ReportLogger(); const app = await NestFactory.create<NestExpressApplication>(AppModule, { cors: { origin: ['http://localhost', 'http://localhost:3000'], credentials: true, }, bufferLogs: true, logger: reportLogger, }); app.useGlobalInterceptors( new LogInterceptor(reportLogger), ); setupSwagger(app); await app.listen(4200); }

Cuando ejecuto npm run start:dev para ejecutar la aplicación Nest en el desarrollador, todo funciona bien. Pero cuando ejecuto npm run test:e2e o npm run test on testing, muestra este error:

 Using the "extends Logger" instruction is not allowed in Nest v8. Please, use "extends ConsoleLogger" instead. 10 | const moduleFixture: TestingModule = await Test.createTestingModule({ 11 | imports: [AppModule], > 12 | }).compile(); | ^ 13 | 14 | app = moduleFixture.createNestApplication(); 15 | await app.init();

Leí el documento de Nest.js nuevamente y encontré el cambio de ruptura de registro en los documentos. Pero la pregunta es que ya hice que mi ReportLogger extienda ConsoleLogger, ¿por qué aparece este error nuevamente? ¿Y por qué solo se muestra en las pruebas?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

incluso con "@nestjs/testing": "^8.0.7" este problema aún ocurre

 class Logger implements LoggerService { ... } await Test.createTestingModule({ imports: [ApiModule], }) .setLogger(new Logger()) .compile();

configurar la instancia del registrador resuelve ese error de mi lado

over 4 years ago · Santiago Trujillo Relatório

0

Enfrenté el mismo problema después de actualizar NestJS a la versión 8.

Más tarde, descubrí que el paquete @nestjs/testing tenía instalada una versión anterior y no se actualizó a la última versión. El motivo es que la versión anterior del módulo de prueba de NestJS está utilizando el registrador antiguo.

Para solucionar este problema, solo necesita actualizar el módulo de prueba de NestJS.

Ejecute este comando para la última versión:

 npm i @nestjs/testing@latest

O versión específica

 npm i @nestjs/testing@8.0.6 // <--- Change the NestJS version here

Después de esto, simplemente construya y ejecute casos de prueba nuevamente.

Enlaces externos:

  • Prueba de NPM de NestJS
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda