Incorporando Vitest a un proyecto existente
Vitest puede ser añadido a espacios de trabajo de Angular existentes a través de un simple proceso.
Instalación
Para añadir Vitest, instala los paquetes necesarios:
- npm
- Yarn
- pnpm
npm install @analogjs/vite-plugin-angular @analogjs/platform jsdom vite-tsconfig-paths --save-dev
yarn add @analogjs/vite-plugin-angular @analogjs/platform jsdom vite-tsconfig-paths --dev
pnpm install -w @analogjs/vite-plugin-angular @analogjs/platform jsdom vite-tsconfig-paths
Configuración para ejecutar las pruebas sobre Node
Para configurar Vitest, crea un fichero vite.config.ts
en la raíz de tu proyecto:
/// <reference types="vitest" />
import { defineConfig } from 'vite';
import angular from '@analogjs/vite-plugin-angular';
import viteTsConfigPaths from 'vite-tsconfig-paths';
export default defineConfig(({ mode }) => ({
plugins: [angular(), viteTsConfigPaths()],
test: {
globals: true,
setupFiles: ['src/test.ts'],
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
},
define: {
'import.meta.vitest': mode !== 'production',
},
}));
Luego, crea un fichero src/test.ts
para configurar el TestBed
:
import '@analogjs/vite-plugin-angular/setup-vitest';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting,
} from '@angular/platform-browser-dynamic/testing';
import { getTestBed } from '@angular/core/testing';
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
A continuación, actualiza la propiedad test
en el fichero angular.json
para usar el constructor @analogjs/platform:vitest
:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"your-project": {
"projectType": "application",
"architect": {
"build": ...,
"serve": ...,
"extract-i18n": ...,
"test": {
"builder": "@analogjs/platform:vitest"
}
}
}
}
}
También puedes agregar una nueva propiedad denominada
vitest
para que se ejecute junto atest
.
Por último, añade src/test.ts
a la lista files
en el fichero tsconfig.spec.json
en la raíz del proyecto, y actualiza la propiedad types
.
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": ["vitest/globals", "node"]
},
"files": ["src/test.ts"],
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
}
Configuración para ejecutar las puebas en el navegador
Si prefieres ejecutar tus pruebas en un navegador, Vitest ofrece soporte experimental para ello.
Primero, sigue los pasos para ejecutar pruebas sobre Node
Luego, instala las dependencias necesarias.
- npm
- Yarn
- pnpm
npm install @vitest/browser playwright --save-dev
yarn add @vitest/browser playwright --dev
pnpm install -w @vitest/browser playwright
Actualiza la propiedad test
en el fichero vite.config.ts
.
- Elimina la propiedad
environment: 'jsdom'
. - Añade el objeto
browser
con la configuración adecuada.
/// <reference types="vitest" />
import { defineConfig } from 'vite';
import angular from '@analogjs/vite-plugin-angular';
import viteTsConfigPaths from 'vite-tsconfig-paths';
export default defineConfig(({ mode }) => ({
plugins: [angular(), viteTsConfigPaths()],
test: {
globals: true,
setupFiles: ['src/test.ts'],
// environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
// Vitest browser config
browser: {
enabled: true,
name: 'chromium',
headless: false, // set to true in CI
provider: 'playwright',
},
},
define: {
'import.meta.vitest': mode !== 'production',
},
}));
Ejecutando las pruebas
Para ejecutar pruebas unitarias, utiliza el comando test
:
- npm
- Yarn
- pnpm
npm run test
yarn test
pnpm test