Skip to content
Vitest 1
Main Navigation GuíaAPIConfiguraciónAvanzado
1.6.1
0.34.6

Español

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

Español

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

Apariencia

Sidebar Navigation

Guía

Por qué Vitest

Empezando

Características

Área de Trabajo

Interfaz de Línea de Comandos

Filtrado de Pruebas

Informes

Cobertura

Capturas instantáneas

Mocking

Pruebas de Tipos

Interfaz de Usuario de Vitest

Modo Navegador

Pruebas en el código fuente

Contexto de prueba

Entorno de Pruebas

Extender Matchers

Integración con IDEs

Depuración

Comparaciones con otros Ejecutores de Pruebas

Guía de Migración

Errores frecuentes

Mejora del rendimiento

API

Referencia de la API de pruebas

Funciones Mock

Vi

expect

expectTypeOf

assert

assertType

Configuración

Administración del archivo de configuración de Vitest

Configuración de Vitest

En esta página

Pruebas en el código fuente ​

Vitest también ofrece la posibilidad de ejecutar pruebas directamente dentro del código fuente, junto con la implementación, de forma similar a las pruebas de módulo de Rust.

Esto permite que las pruebas compartan el mismo contexto que las implementaciones y puedan probar estados internos sin necesidad de exponerlos. Además, proporciona una retroalimentación más inmediata durante el desarrollo.

Configuración ​

Para empezar, añade un bloque if (import.meta.vitest) al final de tu archivo fuente e incluye algunas pruebas dentro de este bloque. Por ejemplo:

ts
// src/index.ts

// la implementación
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// conjunto de pruebas en el código fuente
if (import.meta.vitest) {
  const { it, expect } = import.meta.vitest;
  it('add', () => {
    expect(add()).toBe(0);
    expect(add(1)).toBe(1);
    expect(add(1, 2, 3)).toBe(6);
  });
}

Actualiza la configuración includeSource para que Vitest incluya los archivos dentro de src/:

ts
// vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'], 
  },
});

¡Ahora puedes empezar a ejecutar las pruebas!

bash
$ npx vitest

Construcción para producción ​

Para la construcción para producción, es necesario configurar la opción define en el archivo de configuración, permitiendo que el empaquetador elimine el código no utilizado. Por ejemplo, en Vite:

ts
// vite.config.ts
/// <reference types="vitest" />
import { defineConfig } from 'vite';

export default defineConfig({
  test: {
    includeSource: ['src/**/*.{js,ts}'],
  },
  define: {
    'import.meta.vitest': 'undefined', 
  }, 
});

Otros empaquetadores ​

unbuild
ts
// build.config.ts
import { defineBuildConfig } from 'unbuild';

export default defineBuildConfig({
  replace: {
    'import.meta.vitest': 'undefined', 
  }, 
  // other options
});

Más información en: unbuild

rollup
ts
// rollup.config.js
import replace from '@rollup/plugin-replace'; 

export default {
  plugins: [
    replace({
      'import.meta.vitest': 'undefined', 
    }), 
  ],
  // other options
};

Más información: Rollup

TypeScript ​

Para habilitar el soporte de TypeScript para import.meta.vitest, añade vitest/importMeta a tu tsconfig.json:

json
// tsconfig.json
{
  "compilerOptions": {
    "types": [
      "vitest/importMeta"
    ]
  }
}

Consulta test/import-meta para ver un ejemplo completo.

Notas ​

Esta característica puede ser útil para:

  • Pruebas unitarias de funciones o utilidades de alcance limitado.
  • Prototipado.
  • Aserciones en línea.

Se recomienda utilizar archivos de prueba separados para pruebas más complejas, como pruebas de componentes o pruebas E2E.

Pager
AnteriorModo Navegador
SiguienteContexto de prueba

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors

https://v1.vitest.dev/guide/in-source

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors