TestSpecification
A classe TestSpecification
descreve qual módulo deve ser executado como um teste e seus parâmetros associados.
Você só pode criar uma especificação chamando o método createSpecification
de uma instância de TestProject
:
const specification = project.createSpecification(
resolve('./example.test.ts'),
[20, 40] // Linhas opcionais para execução de testes específicos
);
O método createSpecification
espera um ID de módulo já resolvido. Ele não realiza a resolução automática do caminho do arquivo nem verifica sua existência no sistema de arquivos.
taskId
Identificador único do módulo de teste.
project
Referência à instância de TestProject
à qual o módulo de teste pertence.
moduleId
Este é o ID do módulo dentro do grafo de módulos do Vite. Geralmente, é um caminho de arquivo absoluto que utiliza o separador de caminho POSIX:
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌
testModule
Instância de TestModule
associada a esta especificação. Se o teste ainda não tiver sido enfileirado para execução, o valor será undefined
.
pool experimental
O pool
no qual o módulo de teste será executado.
DANGER
É possível ter múltiplos pools em um único projeto de testes ao usar poolMatchGlob
e typecheck.enabled
. Isso implica que pode haver várias especificações com o mesmo moduleId
, mas associadas a pool
s diferentes. No Vitest 4, o projeto suportará apenas um único pool, e esta propriedade será removida.
testLines
Este é um array de números de linha no código-fonte onde os testes são definidos. Este campo é preenchido apenas se o método createSpecification
tiver recebido um array de linhas.
Observe que, se não houver um teste definido em pelo menos uma das linhas especificadas, a suíte de testes inteira falhará. Um exemplo de configuração correta para testLines
:
const specification = project.createSpecification(
resolve('./example.test.ts'),
[3, 8, 9]
);
import { test, describe } from 'vitest'
test('verification works')
describe('a group of tests', () => {
// ...
test('nested test')
test.skip('skipped test')
})
toJSON
function toJSON(): SerializedTestSpecification;
O método toJSON
gera um objeto compatível com JSON que pode ser utilizado pelo Modo Navegador ou pela Vitest UI.