Skip to content
Vitest 0
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

Cobertura

Snapshot

Mocking

Testando Tipos de Dados

Vitest UI

Modo Navegador (experimental)

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

API

Referência da API de Teste

Funções Mock

Vi

expect

expectTypeOf

assertType

Configuração

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
import { defineConfig } from 'vitest/config';

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:

diff
// vite.config.ts
import { defineConfig } from 'vitest/config'

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

Outros Bundlers ​

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

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

Saiba mais sobre: unbuild

rollup
diff
// 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:

diff
// 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 (experimental)
PróximoContexto de Teste

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors

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

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors