Skip to content
Vitest 3
Main Navigation Útmutató & APIKonfigurációBöngésző módHaladó API
3.2.0
2.1.9
1.6.1
0.34.6

magyar

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

magyar

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

Megjelenés

Sidebar Navigation

API

Node API

Haladó API

Vitest API

TestProject

TestSpecification

Test Task API

TestCase

TestSuite

TestModule

TestCollection

Plugin API

Futtató API

Jelentők

Feladat metaadatok

Útmutató

Tesztfuttatás

Jelentéskészítők kiterjesztése

Egyéni Pool

Vitest konfigurálása

Teszt API Referencia

Ezen az oldalon

Tesztfuttatás ​

WARNING

Ez az útmutató a fejlett API használatát mutatja be a tesztek Node.js szkripten keresztüli futtatásához. Ha csak teszteket szeretne futtatni, valószínűleg nem erre van szüksége. Elsősorban könyvtárfejlesztők használják.

A visszamenőlegesen nem kompatibilis változtatások nem feltétlenül követik a SemVer-t. Kérjük, rögzítse a Vitest verzióját, amikor az experimentális API-t használja.

A Vitest két módszert kínál az inicializálásra:

  • A startVitest inicializálja a Vitestet, ellenőrzi a szükséges csomagok telepítését, és azonnal futtatja a teszteket.
  • A createVitest csak a Vitestet inicializálja, és nem futtat teszteket.

startVitest ​

ts
import { startVitest } from 'vitest/node';

const vitest = await startVitest(
  'test',
  [], // CLI szűrők
  {}, // tesztkonfiguráció felülírása
  {}, // Vite konfiguráció felülírása
  {} // egyéni Vitest opciók
);
const testModules = vitest.state.getTestModules();
for (const testModule of testModules) {
  console.log(testModule.moduleId, testModule.ok() ? 'megfelelt' : 'elbukott');
}

TIP

A TestModule, TestSuite és TestCase API-k nem kísérleti jellegűek, és a Vitest 2.1 óta követik a SemVer-t.

createVitest ​

Tesztek futtatása nélkül hoz létre egy Vitest példányt.

A createVitest metódus nem ellenőrzi a szükséges csomagok telepítését. Nem veszi figyelembe sem a config.standalone, sem a config.mergeReports beállításokat. A Vitest nem záródik be automatikusan, még akkor sem, ha a watch mód le van tiltva.

ts
import { createVitest } from 'vitest/node';

const vitest = await createVitest(
  'test',
  {}, // tesztkonfiguráció felülírása
  {}, // Vite konfiguráció felülírása
  {} // egyéni Vitest opciók
);

// akkor hívódik meg, amikor a `vitest.cancelCurrentRun()`-t meghívják
vitest.onCancel(() => {});
// a `vitest.close()` hívásakor hívódik meg
vitest.onClose(() => {});
// akkor hívódik meg, amikor a Vitest újra futtatja a tesztfájlokat
vitest.onTestsRerun(files => {});

try {
  // ez 1-re állítja a process.exitCode-ot, ha a tesztek sikertelenek,
  // és nem zárja be automatikusan a folyamatot
  await vitest.start(['my-filter']);
} catch (err) {
  // ez hibát dobhat
  // "FilesNotFoundError" ha fájlok nem találhatók
  // "GitNotFoundError" `--changed` esetén, ha a tárhely nincs inicializálva
} finally {
  await vitest.close();
}

Ha meg szeretné tartani a Vitest példányt, győződjön meg róla, hogy legalább meghívja az init metódust. Ez inicializálja a riportereket és a lefedettségi szolgáltatót, de nem futtat teszteket. Ajánlott a watch mód engedélyezése is, még akkor is, ha nem kívánja használni a Vitest figyelőjét, de szeretné, ha a példány futásban maradna. A Vitest erre a jelzőre támaszkodik bizonyos funkcióinak helyes működéséhez egy folyamatos környezetben.

Miután a riporterek inicializálva lettek, használja a runTestSpecifications vagy rerunTestSpecifications metódusokat a tesztek futtatásához, ha manuális futtatás szükséges:

ts
watcher.on('change', async file => {
  const specifications = vitest.getModuleSpecifications(file);
  if (specifications.length) {
    vitest.invalidateFile(file);
    // használhatja a runTestSpecifications-t, ha a "reporter.onWatcher*" hookokat
    // nem kell meghívni
    await vitest.rerunTestSpecifications(specifications);
  }
});

WARNING

A fenti példa egy lehetséges felhasználási esetet mutat be az alapértelmezett figyelő viselkedés letiltása esetén. Alapértelmezetten a Vitest már automatikusan újra futtatja a teszteket, ha a fájlok megváltoznak.

Vegye figyelembe azt is, hogy a getModuleSpecifications nem fogja feloldani a tesztfájlokat, hacsak a globTestSpecifications korábban nem dolgozta fel őket. Ha a fájl éppen most került létrehozásra, használja helyette a project.matchesGlobPattern metódust:

ts
watcher.on('add', async file => {
  const specifications = [];
  for (const project of vitest.projects) {
    if (project.matchesGlobPattern(file)) {
      specifications.push(project.createSpecification(file));
    }
  }

  if (specifications.length) {
    await vitest.rerunTestSpecifications(specifications);
  }
});

Azokban az esetekben, amikor le kell tiltania a figyelőt, a Vite 5.3 óta átadhatja a server.watch: null értéket, vagy a server.watch: { ignored: ['*/*'] } értéket egy Vite konfigurációnak:

ts
await createVitest(
  'test',
  {},
  {
    plugins: [
      {
        name: 'stop-watcher',
        async configureServer(server) {
          await server.watcher.close();
        },
      },
    ],
    server: {
      watch: null,
    },
  }
);
Pager
Előző oldalFeladat metaadatok
Következő oldalJelentéskészítők kiterjesztése

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team

https://vitest.dev/advanced/guide/tests

A MIT licenc alapján kiadva.

Copyright (c) 2021-Present Vitest Team