Skip to content
Vitest 1
Main Navigation GuiaAPIConfiguraçãoAvançado
1.6.1
0.34.6

Português – Brasil

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

Português – Brasil

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

Aparência

Sidebar Navigation

Guia

Por que Vitest

Primeiros Passos

Recursos

Workspace

Interface de Linha de Comando

Filtrando Testes

Reporters

Cobertura

Snapshot

Mocking

Testando Tipos

Vitest UI

Modo Navegador

Testes no Código Fonte

Contexto de Teste

Ambiente de Teste

Expandindo Matchers

Integrações de IDE

Depuração

Comparações com Outros Executores de Teste

Guia de Migração

Erros Comuns

Otimizando o Desempenho

API

Referência da API de Teste

Funções Mock

Vi

expect

expectTypeOf

assert

assertType

Configuração

Gerenciando o Arquivo de Configuração do Vitest

Configurando o Vitest

Nesta página

Testes no Código Fonte ​

O Vitest oferece uma maneira de executar testes diretamente no seu código fonte, junto à implementação, similar aos testes de módulo do Rust.

Isso permite que os testes compartilhem o mesmo escopo das implementações, possibilitando testar estados privados sem a necessidade de exportá-los. Além disso, proporciona um ciclo de feedback mais rápido durante o desenvolvimento.

Configuração ​

Para começar, adicione um bloco if (import.meta.vitest) ao final do seu arquivo de código fonte e escreva alguns testes dentro dele. Por exemplo:

ts
// src/index.ts

// a implementação
export function add(...args: number[]) {
  return args.reduce((a, b) => a + b, 0);
}

// suítes de testes no código fonte
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);
  });
}

Atualize a configuração includeSource do Vitest para incluir os arquivos em src/:

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

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

Agora você pode começar a testar!

bash
$ npx vitest

Compilação para Produção ​

Para a compilação de produção, você precisará definir as opções define no seu arquivo de configuração, permitindo que o bundler realize a eliminação de código morto (dead code elimination). Por exemplo, no 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', 
  }, 
});

Outros Bundlers ​

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

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

Saiba mais sobre: unbuild

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

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

Saiba mais sobre: Rollup

TypeScript ​

Para obter suporte do TypeScript para import.meta.vitest, adicione vitest/importMeta ao array types no seu tsconfig.json:

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

Veja test/import-meta para um exemplo completo.

Notas ​

Este recurso pode ser útil para:

  • Testes unitários de funções ou utilitários de escopo pequeno
  • Criação de protótipos
  • Asserções inline

Recomenda-se utilizar arquivos de teste separados para testes mais complexos, como testes de componentes ou E2E.

Pager
AnteriorModo Navegador
PróximoContexto de Teste

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors

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

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors