Skip to content
Vitest 3
Main Navigation Kılavuz & APIYapılandırmaTarayıcı ModuGelişmiş API
3.2.0
2.1.9
1.6.1
0.34.6

Türkçe

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
čeština
magyar

Türkçe

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
čeština
magyar

Görünüm

Sidebar Navigation

API

Node API

Gelişmiş API

Vitest API

Test Projesi

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

Eklenti API'si

Çalıştırıcı API'si

Raporlayıcılar

Görev Meta Verileri

Kılavuz

Testleri Çalıştırma

Raporlayıcıları Genişletme

Özel Havuz

Vitest'i Yapılandırma

Test API Referansları

Bu sayfada

Raporlayıcıları Genişletme ​

WARNING

Bu, gelişmiş bir API'dir. Yalnızca yerleşik raporlayıcıları yapılandırmak istiyorsanız, "Raporlayıcılar" kılavuzunu okuyun.

vitest/reporters'tan raporlayıcıları içe aktarabilir ve özel raporlayıcılarınızı oluşturmak için bunları genişletebilirsiniz.

Yerleşik Raporlayıcıları Genişletme ​

Genel olarak, raporlayıcınızı sıfırdan oluşturmanıza gerek yoktur. vitest, genişletebileceğiniz birkaç varsayılan raporlayıcı ile birlikte gelir.

ts
import { DefaultReporter } from 'vitest/reporters';

export default class MyDefaultReporter extends DefaultReporter {
  // Ek özelleştirmeler buraya eklenebilir
}

Elbette, raporlayıcınızı sıfırdan da oluşturabilirsiniz. Bunun için BaseReporter sınıfını genişletmeniz ve ihtiyacınız olan yöntemleri uygulamanız yeterlidir.

İşte özel bir raporlayıcı örneği:

ts
import { BaseReporter } from 'vitest/reporters';

export default class CustomReporter extends BaseReporter {
  onCollected() {
    const files = this.ctx.state.getFiles(this.watchFilters);
    this.reportTestSummary(files);
  }
}

Veya Reporter arayüzünü uygulayabilirsiniz:

ts
import type { Reporter } from 'vitest/node';

export default class CustomReporter implements Reporter {
  onCollected() {
    // Özel raporlama mantığı buraya yazılır
  }
}

Ardından özel raporlayıcınızı vitest.config.ts dosyasında kullanabilirsiniz:

ts
import { defineConfig } from 'vitest/config';
import CustomReporter from './custom-reporter.js';

export default defineConfig({
  test: {
    reporters: [new CustomReporter()],
  },
});

Raporlanan Görevler ​

Raporlayıcıların doğrudan aldığı görevleri kullanmak yerine, Raporlanan Görevler API'sini kullanmanız tavsiye edilir. Bu API, daha tutarlı ve güçlü bir raporlama deneyimi sunar.

Bu API'ye vitest.state.getReportedEntity(runnerTask) çağrısı yaparak erişebilirsiniz:

ts
import type { Reporter, RunnerTestFile, TestModule, Vitest } from 'vitest/node';

class MyReporter implements Reporter {
  private vitest!: Vitest;

  onInit(vitest: Vitest) {
    this.vitest = vitest;
  }

  onFinished(files: RunnerTestFile[]) {
    for (const file of files) {
      // Eski görev uygulamasında "module" yerine "file" kullanıldığına dikkat edin.
      const testModule = this.vitest.state.getReportedEntity(
        file
      ) as TestModule;
      for (const task of testModule.children) {
        //                          ^?
        console.log('finished', task.type, task.fullName);
      }
    }
  }
}

Dışa Aktarılan Raporlayıcılar ​

vitest, hazır olarak kullanabileceğiniz birkaç yerleşik raporlayıcı ile birlikte gelir.

Yerleşik Raporlayıcılar: ​

  1. BasicReporter
  2. DefaultReporter
  3. DotReporter
  4. JsonReporter
  5. VerboseReporter
  6. TapReporter
  7. JUnitReporter
  8. TapFlatReporter
  9. HangingProcessReporter

Temel Soyut Raporlayıcılar: ​

  1. BaseReporter

Arayüz Raporlayıcılar: ​

  1. Reporter
Pager
Önceki sayfaTestleri Çalıştırma
Sonraki sayfaÖzel Havuz

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/reporters

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2021-Present Vitest Team